如何添加三个数组中的值?

How do I add the values from three arrays?

有没有简单的方法可以将数组的元素相加?假设我有 3 个数组。

[15,22,35,40]
[10,20,12,20]
[11,24,14,22]

我想做的是将总数加起来,这样就可以了:

[36,66,61,82]

然后用这些值覆盖 [11,24,14,22]。

忘记添加我已有的代码:

function combineItems(){
  sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  var dataRange = sheet.getDataRange();
  var values = dataRange.getValues();
  for (var i = 0; i < values.length; i++) {
    var row = "";
    for (var j = 0; j < values[i].length; j++) {
      if (values[i][j] == "Product A") {
        medData = sheet.getRange(i + 1, 7, 1, 4).getValues();
        console.log(medData);
      }
      if (values[i][j] == "Product B") {
        smData = sheet.getRange(i + 1, 7, 1, 4).getValues();
        console.log(smData);
      }
      if (values[i][j] == "Product C") {
        newData = sheet.getRange(i + 1, 7, 1, 4).getValues();
        console.log(newData);
      }
    }
  }
}

所以我想将产品 A、产品 B 和产品 C 相加,然后用这些新总数覆盖产品 C。

解法:

function myFunction(data) {

  return data[data.length-1].map((i, index) => i = 
           data.reduce((prev, curr) => prev + curr[index], 0)
         )

}

示例:

const productA = [15,22,35,40]
const productB = [10,20,12,20]
const productC = [11,24,14,22] 

const newData = myFunction([productA, productB, productC])

/** 

Expected Output:

  [36.0, 66.0, 61.0, 82.0]

**/

工作原理:

采用多维数组的输入,我们通过按每一行的索引减少 (.reduce()) 输入数据的所有值来更改最后一行 (.map())。 (将每列数据缩减到最后一行。)

推荐阅读: