有沒有一種簡單的方法可以將陣列的元素添加在一起?假設我有 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。
uj5u.com熱心網友回復:
解決方案:
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]
**/
這個怎么運作:
以多維陣列的輸入為例,我們通過按每行的索引.map()減少 ( .reduce()) 輸入資料的所有值來更改最后一行 ()。
(將每一列資料減少到最后一行。)
推薦閱讀:
- 陣列.map()
- 陣列.reduce()
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/473321.html
