Javascript 嵌套循环不是 returns 预期的外循环索引

Javascript nested loop not returns outer loop's index as expected

const a = 3
const b = 4

const arr = new Array(a).fill([]);

for (let i = 0; i < a; i++) {
  for (let j = 0; j < b; j++) {
    arr[i][j] = i;
  }
}

console.log(JSON.stringify(arr))

我希望 return

[[0,0,0,0],[1,1,1,1],[2,2,2,2]]

但是 returns

[[2,2,2,2],[2,2,2,2],[2,2,2,2]]

我认为这不是因为关闭的原因,但请让我知道这段代码没有按预期工作的问题是什么。

* 已编辑 -> 对不起,我忘了粘贴初始化 arr 代码 *

不要直接在二维数组中赋值。先初始化第一个维度。

var arr = []
const a = 3
const b = 4

for(let i=0; i<a; i++){
  arr.push([])
  for(let j=0; j<b; j++){
      arr[i][j] = i;
  }
}

console.log(arr)

不要像这样初始化你的数组:

const arr = new Array(a).fill([]);

通过这样做,您可以传递引用而不是值,就像您可以对整数所做的那样。引用和值之间的区别很重要。

我发现 post 另一个关于 Array.fill() 的问题,其他人有同样的问题。