你会如何获取这样的数组:
arr1 = [[1150-500101-1000005530, 2750.0],
[1150-500101-1000005530, 275.0],
[1150-500101-1000008371, 825.0],
[1150-500101-1000014950, 550.0],
[1150-500101-1000019105, 589.0],
[1150-500101-1000019111, 589.0],
[1150-500101-1000019111, 275.0]]
并合并每个数组第一个值中的重复值 (arr1[i][0])
为了得到这样的东西:
reducedArr1 = [[1150-500101-1000005530, 3025.0],
[1150-500101-1000008371, 825.0],
[1150-500101-1000014950, 550.0],
[1150-500101-1000019105, 589.0],
[1150-500101-1000019111, 864.0]]
这些值从 Google 表格中提取时会不断变化。
我试图找到类似的问题,但没有找到任何无需分配密钥即可应用的问题。我真正寻找的是为二维数组制作的 SUMIF,这样我就可以将这个新数组添加到 Google Sheet 报告中。
谢谢
对二维数组中的重复项求和:
function myfunk() {
let arr1 = [["1150-500101-1000005530", 2750.0], ["1150-500101-1000005530", 275.0], ["1150-500101-1000008371", 825.0], ["1150-500101-1000014950", 550.0], ["1150-500101-1000019105", 589.0], ["1150-500101-1000019111", 589.0], ["1150-500101-1000019111", 275.0]];
var obj = { pA: [] };
arr1.forEach((r,i) => {
let p = r[0];
if(!obj.hasOwnProperty(p)) {
obj[p] = {id:r[0],value:r[1]};
obj.pA.push(p);
} else {
obj[p].value += r[1];
}
})
let arr = obj.pA.map(p => [obj[p].id,obj[p].value]);
Logger.log(JSON.stringify(arr));
}
Execution log
10:45:26 AM Notice Execution started
10:45:27 AM Info [["1150-500101-1000005530",3025],["1150-500101-1000008371",825],["1150-500101-1000014950",550],["1150-500101-1000019105",589],["1150-500101-1000019111",864]]
10:45:28 AM Notice Execution completed