合并数组数组中唯一项并求和 - JavaScript
javascriptweb developmentobject oriented programming更新于 2025/9/25 6:36:17
我们有一个数组数组,每个子数组恰好包含两个元素,第一个是字符串,在本例中是人名,第二个是整数,我们需要做的是合并所有第一个元素相同的子数组,第二个元素应该是公共子数组的第二个元素之和。
以下是我们的示例数组 −
const example = [[ 'first', 12 ], [ 'second', 19 ], [ 'first', 7 ]];
应转换为以下内容
const example = [[ 'first', 19 ], [ 'second', 19 ] ];
假设我们编写一个函数 CombineArray(),该函数将数组作为输入并返回组合数组作为输出,则该函数的代码将是−
示例
const people = [
['Ram', 21],
['Mohan', 33],
['Vikram', 25],
['Mike', 29],
['Mohan', 41],
['Vikram', 26]
];
const combineArray = (people) => {
const map = {};
for(const index in people){
const name = people[index][0];
const prop = people[index][1];
if(map[name]){
map[name] += prop;
}else{
map[name] = prop;
}
}
return Object.keys(map).map(key => [key, map[key]]);
}
console.log(combineArray(people));
输出
控制台中的输出将是 −
[ [ 'Ram', 21 ], [ 'Mohan', 74 ], [ 'Vikram', 51 ], [ 'Mike', 29 ] ]
了解 CombineArray 函数 −
它遍历数组,将名称作为键并将 prop 作为对象中的值进行映射,确保将重复的键加在一起,最后将对象转换为数组的数组并返回。
此函数的时间复杂度为 O(2n),通常四舍五入为 O(n),空间复杂度也是 O(n)。
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

