Javascript 在嵌套循环中将条目推入数组
我的代码:Javascript 在嵌套循环中将条目推入数组,javascript,Javascript,我的代码: 函数zeroArray(){ 设newArray=[]; 设row=[]; for(设i=0;i
函数zeroArray(){
设newArray=[];
设row=[];
for(设i=0;i<3;i++){
for(设j=0;j<2;j++){
行。推送(0);
}
newArray.push(行);
}
返回新数组
}
log(zeroArray())
看起来像是一个意外的对象突变实例。在本例中,您多次推送相同的行
,然后对其进行更新(结果是它更新了最后出现在newArray
中的三个实例)。如果您改为使用类似于newArray.push(row.slice())
的内容,则输出将与您预期的一样。多次推送同一数组。它不是复制,而是在newArray
中多次引用同一行
数组。请参阅我刚刚更新的建议解决方案。
function zeroArray() {
let newArray = [];
let row = [];
for (let i = 0; i < 3; i++) {
for (let j = 0; j < 2; j++) {
row.push(0);
}
newArray.push(row); // <== Problematic line
}
return newArray;
}
function zeroArray() {
const newArray = [];
for (let i = 0; i < 3; i++) {
const row = [];
for (let j = 0; j < 2; j++) {
row.push(0);
}
newArray.push(row); // <== Problematic line
}
return newArray;
}