javascript - 在 javascript 中,如果 : x = []; x. push(x); 会发生什么?

标签 javascript arrays recursion

var x = []; 
x.push(x);

x 现在似乎是一个无限深的俄罗斯娃娃类型元数组。

如果您检查 x[0][0][0].... 与您添加的 [0] 索引一样多,它仍会返回一个 -项目数组。

但是有一个有限的深度截止吗?还是检查时程序会生成新级别?这是我能想到的仅有的两种可能性。

最佳答案

var x = []; 
x.push(x);

x now seems to be an infinitely deep russian-doll type meta array.

不是真的。 x 是一个数组。数组中的第一个元素指向与 x 本身相同的内存位置。仅此而已。

但是,是的,你可以做到

x[0][0][0]

任意多次,因为您只是一遍又一遍地重新引用相同的内存位置。

关于javascript - 在 javascript 中,如果 : x = []; x. push(x); 会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24093742/

相关文章:

javascript - Canvas 绘制不正确(不稳定)

windows - 按顺序递归重命名所有子文件夹中的文件

Java - 无法摆脱这种递归方法

c - 试图将 char 数组复制到结构崩溃

javascript - 使用 Node.js 从网页中抓取 URL

C++ - 字符串匹配的值?

javascript - 中断说错误 : Jump target cannot cross function boundary. typescript

javascript - 在导致模糊的点击事件之后,我应该如何触发 Javascript 模糊事件?

javascript - 返回未定义的 Node.js npm mssql 函数

javascript - 对于macOS中的 Electron 应用程序,何时调用app.quit()?