请解释给我听。我试图用for循环创建一个数组的数组。但是当它没有工作时,我尝试简化代码以理解Javascript在做什么,但是简单的代码也不合理。
function test(){
var sub_array = [];
var super_array =[];
for (var i=1;i<=3;i++){
sub_array.push(i);
super_array.push(sub_array);
}
alert(super_array);
}
我期望看到的是[1; 1,2; 1,2,3],但实际上得到的是[1,2,3; 1,2,3; 1,2,3]。如果我按索引循环并赋值,也会出现相同的情况。
.slice(0)
来复制数组,而不是使用.concat()
呢?虽然后者可能更快,但我做的分析并不确定。 - Dan D.concat()
更快。我会在我的回答中提到它。谢谢你的评论 :) - Frédéric Hamidi