【问题标题】:How can i add new column to a 2D array in javascript after each iteration?每次迭代后如何在javascript中的二维数组中添加新列?
【发布时间】:2020-08-11 21:09:53
【问题描述】:

我有 2 个数组。 (arr1, arr2) 我想取索引 0 处的值和 将它乘以 arr2 中的每个值,然后将每个值添加到 一个二维数组。 例如。

arr1 = [1,3,5,7] arr2 = [4,2,1,6]

结果应该是:

 2Darray = [
   [4,12,20,28],
   [2,6,10,14],
   [1,3,5,7],
   [6,18,30,42] 
];

我在 javascript 中的 for 循环以及如何创建一个 每次迭代后的新行。 ```

谢谢

【问题讨论】:

  • 我不完全确定我是否遵循了您尝试使用的公式,该公式会导致给定行中的每个结果。
  • 第一个条目不应该是[4,12,20,28] 吗?
  • 如果是这样,您的描述是倒退的。您没有获取数组 1 的索引并将其与每个数组 2 相乘。您正在获取每个数组 2 元素并将其与数组 1 元素相乘。

标签: javascript html arrays 2d css-tables


【解决方案1】:

像其他人说的那样使用地图是最好的。

使用余数运算符(%)在我的脑海中最有意义:

const arr1 = [1,3,5,7];
const arr2 = [4,2,1,6];

var twoDemArray = [];

for (var i = 0; i < arr1.length; i++) {

  let tempArr = [];
  
  for (var j = 1; j < arr2.length+1; j++) {
    let newNum = arr1[i]*arr2[j-1];

    tempArr.push(newNum);
    
    if (j % arr2.length == 0) {
      twoDemArray.push(tempArr);
      tempArr = [];
    };
  };

};

console.log(twoDemArray)
//do stuff with twoDemArray

【讨论】:

    【解决方案2】:

    对两个数组进行映射会有所帮助。

    arr1 = [1,3,5,7];
    arr2 = [4,2,1,6];
    
    let res = arr2.map(a2 => arr1.map(a1 => a1*a2))
    console.log(res);

    【讨论】:

      【解决方案3】:

      您可以将数组与值的乘积进行映射。

      const
          array1 = [1, 3, 5, 7],
          array2 = [4, 2, 1, 6],
          result = array2.map(v => array1.map(w => v * w));
      
      result.map(a => console.log(...a));
      console.log(result);

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-04
        • 2018-03-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-30
        • 2022-01-20
        • 1970-01-01
        相关资源
        最近更新 更多