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;
}