JSON.stringify()的时间复杂度是多少



根据这个答案,JSON.parse()的时间复杂度是O(n)

这对JSON.stringify()适用吗?似乎没有任何地方记录这一点。

它应该是O(n(,但n是字符串化值的整个对象层次结构中的节点数。所以如果你有一个数字数组,n就是array.length。但如果你有一个像这样的对象

var obj = 
{ a: [1, 2, 3],
b: { x: 1, y: z },
c: { q: [1, 2], r: "abc" }
}

n为3(obj的性质(+3(obj.a的元素(+2(obj.b的元素(/2(obj.c的元素(=2(obj.c.q的元素(=12

这也将字符串化处理为常量,但实际上它们是O(n(,其中n`是字符串的长度。但是,除非对象中有很多长字符串,否则差异可能并不显著。

最新更新