var x = [];
x.push(x);
x
现在似乎是一个无限深的俄式娃娃式元阵列。
如果您在添加时检查x[0][0][0]
....尽可能多的[0]
索引,它仍会返回单项数组。
但是有一个有限的深度截止?或者是您检查时程序生成的新级别?这是我能想到的唯一两种可能性。
答案 0 :(得分:4)
var x = [];
x.push(x);
x现在似乎是一个无限深的俄式娃娃式元阵列。
不是真的。 x
是一个数组。数组中的第一个元素指向与x
本身相同的内存位置。没什么,没什么。
但是,你可以做到
x[0][0][0]
您可以多次,因为您只是一遍又一遍地重新引用相同的内存位置。
答案 1 :(得分:0)
在任何级别获得x时都不会生成任何内容。插入x作为参考。
取消引用x [0]时,得到x。
x == x [0];
答案 2 :(得分:0)
这里没有循环。您正在创建一个空数组并将其设置为x
。然后下一行x.push(x);
只是将一个空数组推入x
。如果你再次添加do x.push(x);
,它会将数组推入x
,在第一个索引中有一个空数组。