gpt4 book ai didi

javascript - 为什么 array.push() 似乎无限次推送?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:59:08 24 4
gpt4 key购买 nike

考虑以下 javascript 代码,

>> a = [1, 2]
Array [ 1, 2 ]

>> a.push(a)
Array [ 1, 2, Array[3] ]

在扩展数组a 时,我们得到一个无限深度的数组。 (在 firefox 开发者控制台上查看)

Array[3]
| 0: 1
| 1: 2
2: Array[3]
| 0: 1
| 1: 2
| 2: Array[3]
| 0: 1
| 1: 2
| 2: Array[3]
....

[1] 为什么一个getting被追加了不止一次?
[2] 它停在什么深度?

最佳答案

它只被推送一次。当数组引用自身 ( circular refernce ) 时,您会看到多个插入的数组。显示取决于浏览器。

如果您尝试获取 JSON字符串,然后是 JSON.stringify因错误而中断

Circular reference in value argument not supported

var a = [1, 2]
console.log(a);

a.push(a);
console.log(a);
JSON.stringify(a);
.as-console-wrapper { max-height: 100% !important; top: 0; }

关于javascript - 为什么 array.push() 似乎无限次推送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45612364/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com