Javascript 更改嵌套数组中的一个值将更改所有值

Javascript 更改嵌套数组中的一个值将更改所有值,javascript,arrays,Javascript,Arrays,我想创建一个10x10数组,填充0值,我想我可以这样做: var myArray=新数组(10.fill)(新数组(10.fill)(0)); 这工作正常,但在尝试更改数组中的一个值时出现问题,例如: myArray[2][3]=6; 输出不是仅更改一个值,而是: 0[0,0,0,6,0,0,0,0,0,0](10) 1 [0, 0, 0, 6, 0, 0, 0, 0, 0, 0] (10) 2 [0, 0, 0, 6, 0, 0, 0, 0, 0, 0] (10) 3 [0, 0, 0,

我想创建一个
10x10
数组,填充
0
值,我想我可以这样做:

var myArray=新数组(10.fill)(新数组(10.fill)(0));
这工作正常,但在尝试更改数组中的一个值时出现问题,例如:

myArray[2][3]=6;
输出不是仅更改一个值,而是:

0[0,0,0,6,0,0,0,0,0,0](10)
1 [0, 0, 0, 6, 0, 0, 0, 0, 0, 0] (10)
2 [0, 0, 0, 6, 0, 0, 0, 0, 0, 0] (10)
3 [0, 0, 0, 6, 0, 0, 0, 0, 0, 0] (10)
4 [0, 0, 0, 6, 0, 0, 0, 0, 0, 0] (10)
5 [0, 0, 0, 6, 0, 0, 0, 0, 0, 0] (10)
6 [0, 0, 0, 6, 0, 0, 0, 0, 0, 0] (10)
7 [0, 0, 0, 6, 0, 0, 0, 0, 0, 0] (10)
8 [0, 0, 0, 6, 0, 0, 0, 0, 0, 0] (10)
9 [0, 0, 0, 6, 0, 0, 0, 0, 0, 0] (10)
如您所见,索引为
3
的列中的所有值都已更改。为什么会这样?我如何创建一个新的零填充数组而不发生这种情况

var myArray=新数组(10.fill)(新数组(10.fill)(0));
console.log(“--”之前的“---”);
log(myArray);
myArray[2][3]=6;
console.log(在-----------之后以“----”号填列);

log(myArray)
.fill()
不会为调用它的阵列中的每个插槽创建新阵列。只有一个
新数组(10)。填充(0)
。使用
Array.from()
及其第二个参数(回调)。
fill
使用常量值填充,这是用于相同对象引用的对象。
new Array(10).fill(null).map(()=>new Array(10).fill(0))
将为每行创建一个新数组(
map
对每个元素执行回调,而
fill
不执行)@blex
数组。from({length:10},()=>新数组(10)。fill(0))
@Andreas nice one
。fill()
不会为调用它的数组中的每个插槽创建新数组。只有一个
新数组(10)。fill(0)
。使用
数组。from()
及其第二个参数(回调)。
fill
用常量值填充,这是对同一对象引用的对象。
new Array(10).fill(null).map(()=>new Array(10).fill(0))
将为每一行创建一个新数组(
map
为每个元素执行回调,而
fill
不执行回调)@blex
Array.from({length:10},()=>新数组(10.fill(0))
@andreasnice-one