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

Mir*_*ate 4 javascript json time-complexity

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

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

Bar*_*mar 10

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

var obj = 
    { a: [1, 2, 3],
      b: { x: 1, y: z },
      c: { q: [1, 2], r: "abc" }
    }
Run Code Online (Sandbox Code Playgroud)

n是 3(的属性obj)+ 3(的元素obj.a)+ 2(的元素obj.b)+ 2(的元素obj.c)+ 2(的元素obj.c.q)= 12

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