如果有重复项,如何求和这些二维数组元素?
How to get these 2D array elements summed if there are duplicates?
我见过几个 ,但是处理其中包含 2 个元素的数组,我想知道必须进行哪些更改才能通过比较第一个元素并计算第一个元素来求和第 4 个元素
array =
[
[2, 'name1','something',15],
[3, 'name10','something',5],
[5, 'name20','something',20],
[2, 'name15','something',3]
]
预期结果
array =
[
[2, 'name1','something',18],
[3, 'name10','something',5],
[5, 'name20','something',20]
]
感谢您的帮助!
谢谢!
只需更新所需元素的数组索引
在我的测试用例中,我更改了脚本中使用的索引。使用的脚本如下:
function myFunction() {
var array = [
[2, 'name1', 'something', 15],
[3, 'name10', 'something', 5],
[5, 'name20', 'something', 20],
[2, 'name15', 'something', 3]
]
var result = Object.values(array.reduce((c, v) => {
if (c[v[0]]) c[v[0]][3] += v[3]; // Updated the indices
else c[v[0]] = v; // Updated the indices
return c;
}, {}));
console.log(result);
}
从这里开始,索引 [0] 表示第一列 (2,3,5,2) 中的元素,而索引 [3] 表示最后一列 (15,5,20,3) 中的元素。所以基本上,脚本只处理第一列和最后一列来实现你想要的输出。
输出
我见过几个
array =
[
[2, 'name1','something',15],
[3, 'name10','something',5],
[5, 'name20','something',20],
[2, 'name15','something',3]
]
预期结果
array =
[
[2, 'name1','something',18],
[3, 'name10','something',5],
[5, 'name20','something',20]
]
感谢您的帮助!
谢谢!
只需更新所需元素的数组索引
在我的测试用例中,我更改了脚本中使用的索引。使用的脚本如下:
function myFunction() {
var array = [
[2, 'name1', 'something', 15],
[3, 'name10', 'something', 5],
[5, 'name20', 'something', 20],
[2, 'name15', 'something', 3]
]
var result = Object.values(array.reduce((c, v) => {
if (c[v[0]]) c[v[0]][3] += v[3]; // Updated the indices
else c[v[0]] = v; // Updated the indices
return c;
}, {}));
console.log(result);
}
从这里开始,索引 [0] 表示第一列 (2,3,5,2) 中的元素,而索引 [3] 表示最后一列 (15,5,20,3) 中的元素。所以基本上,脚本只处理第一列和最后一列来实现你想要的输出。