如何添加三个数组中的值?
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()
)。
(将每列数据缩减到最后一行。)
推荐阅读:
有没有简单的方法可以将数组的元素相加?假设我有 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()
)。
(将每列数据缩减到最后一行。)
推荐阅读: