【问题标题】:Pushing values in a 2-dimensional array in a for loop in Javascript在Javascript中的for循环中将值推送到二维数组中
【发布时间】:2016-06-26 19:25:13
【问题描述】:

我在Javascript中有以下情况 我希望嵌套循环的最终结果如下: testArray[,[0,0,0,0],[1,1,1,1],[2,2,2,2],[3,3,3,3]] 但是推送似乎不起作用,拼接也不起作用。我不想创建任何中间数组,因为 rowj 是数据库驱动的,它们的值实际上是未知的。

var testArray = [[3],[4]]; // or new Array(3,4);

for (var row=0; row< 3; row++)
  {
    for (var j=0; j< 4; j++)
       {
         testArray[j,row].push(j); //?
         testArray.splice([j,row],0,j); //?
 }
}

【问题讨论】:

  • [[3],[4]] - 这些数字并不像您认为的那样。 start with some documentation 可能会有用。除了修复初始数组文字之外,您可能还需要为每一行(在外部循环中,而不是内部)创建一个 new 数组,然后将列/数字添加到 that 行数组。
  • row

标签: javascript loops multidimensional-array


【解决方案1】:

正如 cmets 中所述,您的代码并未像您认为的那样初始化二维数组。您需要创建一个新数组并将其推送到您需要的每个“行”的顶级数组中。然后可以以多种方式填充每个子阵列 - 取决于您如何访问它并“推入”它们。我编写了一个解决方案并为它创建了一个 Codepen,以便您可以使用代码:

http://codepen.io/jose8a/pen/KMabNw?editors=0011

var testArray = [];

for (var row=0; row<= 3; row++)
  {
    testArray.push([]);
    for (var j=0; j< 4; j++)
       {
         testArray[j, row].push(row); //?
         //testArray.splice([j,row],0,j); //?
 }
}

console.log(testArray);

【讨论】:

  • 很高兴它对你有用!此外,如果它们解决了您的问题,您可能希望接受这两个答案之一 - 以及哪个对您来说更有价值。
  • Juan8a 不幸的是,我没有足够的声誉来接受您的回答。你的回答是正确和快速的。我在网上搜索了一下,没有足够的信息来循环中的 js 多维数组
  • 解决方案是“将其推入每一行的顶级数组中”。实际上,为了简单起见,我最初并没有提到在我的场景中 j 本身就是一个数组,所以我最终得到了一个 3 维数组。再次感谢!
【解决方案2】:

我猜你想将数组推送到另一个数组。这样就可以了。

var testArray = [ ]; //
for (var row=0; row< 3; row++) { 
    var tempArr = [ ];
    for (var j=0; j< 4; j++){ 
        tempArr.push(row); 
    } 
    testArray.push(tempArr);
}

【讨论】:

  • 是的,但这将导致 testArray[,[0,1,2,3],[[0,1,2,3],[[0,1,2,3][[ 0,1,2,3]]
  • 能否提供一些示例数据和实际代码?并提供一些样本输入数据和样本输出可能。然后我可以更正我的代码
  • 我已经编辑了我的答案。它现在应该可以工作了。如果有效,请检查并接受答案
【解决方案3】:

有一种“新”方法可以通过使用 ES6 Array.fill 函数来获取所需的数组:

var testArray = [3,4], result = [];
for (var i = 0; i < testArray[1]; i++) {
    result.push([].fill.call(new Array(4), i));
}

console.log(JSON.stringify(result)); // [[0,0,0,0],[1,1,1,1],[2,2,2,2],[3,3,3,3]]

Array.prototype.fill()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-15
    • 2018-06-26
    • 2011-05-24
    • 1970-01-01
    • 2016-06-28
    • 2015-10-24
    • 1970-01-01
    相关资源
    最近更新 更多