嵌套数组操作怪异行为,JS

我有一张细胞表,需要根据我得到的数据在几个特定位置进行操作

let arr = Array(3).fill(Array(3).fill(0));

[{x: 0, y: 0, value: 1}, {x: 1, y: 0, value: 2},{x: 2, y: 0, value: 3}].map(pos => 
   arr[pos.x][pos.y] = pos.value
)
   console.log(arr)

I expected the code to give [[1,0,0],[2,0,0],[3,0,0]] but instead it give [[3,0,0],[3,0,0],[3,0,0]], in other words it draws all as last y (value 3) and ignore the [pos.x] for some reason, don't sure why.

我希望获得一些可能的解决方法的帮助,以解释为什么此代码无法按预期工作

提前致谢!