Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JavaScript中创建用零初始化的二维数组?_Javascript_Arrays_Loops_For Loop - Fatal编程技术网

如何在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]-

今天我将Python代码移植到JavaScript中,发现了这种行为

代码:

JavaScript给了我什么:

--------------------------
[1, 0] | [1, 1] | [1, 2] |
--------------------------
[1, 0] | [1, 1] | [1, 2] |
--------------------------
看起来JavaScript中使用了一些我认为不应该使用的其他类型的逻辑。我只是简单地将
[I,j]
分配给
[I][j]
-th条目,但结果并不是我想要的

  • 我的密码有错吗
  • 为什么for循环逻辑在JavaScript中不起作用
  • 那我该怎么做才能得到想要的结果呢
  • 如果我们运行:
    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);