如何在JavaScript中创建用零初始化的二维数组?
今天我将Python代码移植到JavaScript中,发现了这种行为 代码: JavaScript给了我什么:如何在JavaScript中创建用零初始化的二维数组?,javascript,arrays,loops,for-loop,Javascript,Arrays,Loops,For Loop,今天我将Python代码移植到JavaScript中,发现了这种行为 代码: JavaScript给了我什么: -------------------------- [1, 0] | [1, 1] | [1, 2] | -------------------------- [1, 0] | [1, 1] | [1, 2] | -------------------------- 看起来JavaScript中使用了一些我认为不应该使用的其他类型的逻辑。我只是简单地将[I,j]分配给[I][j]-
--------------------------
[1, 0] | [1, 1] | [1, 2] |
--------------------------
[1, 0] | [1, 1] | [1, 2] |
--------------------------
看起来JavaScript中使用了一些我认为不应该使用的其他类型的逻辑。我只是简单地将[I,j]
分配给[I][j]
-th条目,但结果并不是我想要的
a=新数组(2.fill)(新数组(3.fill)([0,0]);
对于(设i=0;i您也可以简单地执行此操作,而无需创建带零的数组(除非您需要带零的数组)。对数组使用push
方法
let arr = [];
let nrows = 2;
let ncols = 3;
for (let i=0; i<nrows; i++) {
for (let j=0; j<ncols; j++) {
arr.push([i,j]);
}
}
console.log(arr);
让arr=[];
设nrows=2;
设ncols=3;
对于(设i=0;i如何打印数组内容?因为您使用的是array.fill
,a[1]
是对a[0]
的引用,所以当您更改a[1][0]
时,您也会更改a[0][0]
。有关如何正确创建空的二维数组,请参阅。关键是.fill()
不使用内部数组的副本填充外部数组,而是使用对同一单个数组的引用。
--------------------------
[1, 0] | [1, 1] | [1, 2] |
--------------------------
[1, 0] | [1, 1] | [1, 2] |
--------------------------
let arr = [];
let nrows = 2;
let ncols = 3;
for (let i=0; i<nrows; i++) {
for (let j=0; j<ncols; j++) {
arr.push([i,j]);
}
}
console.log(arr);