繁体   English   中英

如何在多维数组(JavaScript)中分配单个元素

[英]How to assign a single element in a multidimensional array (JavaScript)

我不知道为什么会看到以下内容:

const sideLength = 4;
const multiArray = new Array(sideLength).fill(new Array(sideLength));
console.log(multiArray)
var counter = 1;
multiArray[3][1] = counter;
console.log('multiArray:', multiArray)

控制台输出:

[ [ , , ,  ], [ , , ,  ], [ , , ,  ], [ , , ,  ] ]
multiArray: [ [ , 1, ,  ], [ , 1, ,  ], [ , 1, ,  ], [ , 1, ,  ] ]

我本来希望输出的第二行是:

multiArray: [ [ , , ,  ], [ , , ,  ], [ , , ,  ], [ , 1, ,  ] ]

为什么将1添加到每个数组的index = 1元素?

fill()方法使用静态值填充数组的所有元素,从开始索引到结束索引。

这意味着所有元素都将引用同一数组。 更改一个元素的值将更改所有元素的值,因为它们引用同一静态对象

您可以使用Array.from()创建具有特定.lengthArray

 const sideLength = 4; const multiArray = Array.from({length:sideLength}, () => new Array(sideLength)); console.log(multiArray) var counter = 1; multiArray[3][1] = counter; console.log('multiArray:', multiArray) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM