代码之家  ›  专栏  ›  技术社区  ›  Alvaro Vasquez

如何使用for循环添加数组?

  •  0
  • Alvaro Vasquez  · 技术社区  · 2 年前

    我试图将数组添加到一个数组中,并从每个数组中获得一个数字。数组如下所示:

    设list=[[1,2,3],[4,5,6]];

    并将结果添加到数组中

    这是我的代码,得到的结果是NaN。我已经尝试过多次编辑代码,得到了很多结果。

    var num = 0;
    var numberList = [[1, 2, 3], [4,5, 6]];
    function add(array, element){
      for(let i in array){
        for(let j in array){
          element = Number.parseInt(array[i][j] + array[i][j]);
        }
      }
      console.log(element);
    }
    add(numberList, num);
    

    它应该将结果添加到另一个数组中。我可以将项目推送到一个数组中,但我的第一个重点是添加每个数组。这是一个项目,我只能使用 for 循环,而我唯一可以使用的方法是 push 方法

    2 回复  |  直到 2 年前
        1
  •  1
  •   mani    2 年前

    代码中的问题是在内部循环的每次迭代中都要覆盖元素变量。相反,您应该累加每个子数组中元素的总和,然后将该总和添加到结果数组中。您可以这样修复代码:

    var numberList = [[1, 2, 3], [4, 5, 6]];
    
    function add(array) {
      var result = []; // Create an empty array to store the sums
    
      for (let i = 0; i < array.length; i++) {
        var sum = 0; // Initialize the sum for each sub-array
    
        for (let j = 0; j < array[i].length; j++) {
          sum += array[i][j]; // Accumulate the sum of elements in the sub-array
        }
    
        result.push(sum); // Add the sum to the result array
      }
    
      return result;
    }
    
    var sums = add(numberList);
    console.log(sums); // [6, 15]
    

    在这段代码中,我们初始化一个空的结果数组来存储每个子数组的和。然后,我们遍历numberList数组,计算每个子数组中元素的总和,并将该总和推送到结果数组中。最后,我们返回包含和的结果数组。

        2
  •  1
  •   Dmitry Kolchev    2 年前

    您可以使用map reduce数组函数

    const list = [[1, 2, 3], [4, 5, 6]];
    const result = list.map(e => e.reduce((a, c) => a + c));
    console.log(result);
    

    使用嵌套的for循环可以得到完全相同的结果

    用于。。。of语句执行一个循环,该循环对源自可迭代对象的值序列进行操作

    用于。。。in循环将遍历所有整数键(数组元素的索引)

    const list = [[1, 2, 3], [4, 5, 6]];
    const result = [];
    for(let a of list) {
      result.push(0);
      for(let e of a) {
        result[result.length - 1] += e;
      }
    }
    console.log(result);

    有关更多详细信息,请参阅

    Array.prototype.map

    Array.prototype.reduce

    for...of

    for...in