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

时间:2018-07-11 22:19:49

标签: javascript json time-complexity

根据It seems that the documentation is wrong的答案,JSON.parse()的时间复杂度为O(n)

这对JSON.stringify()是否成立?似乎没有任何地方可以证明这一点。

1 个答案:

答案 0 :(得分:4)

它应该是O(n),但是n是要被字符串化的值在整个对象层次结构中的节点数。因此,如果您有数字数组,则narray.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({{1}的元素})+ 2(obj.c的元素)= 12

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