2025年01月01日 建站教程
我们可以使用JavaScript中的Array.reduce()方法对数组进行合并,根据相同的键值对生成子数组。
方法说明:首先,我们使用Array.reduce()方法对数组进行迭代。在每一次迭代中,我们检查当前元素的键是否已经在累加器中存在。如果存在,则将当前元素的值添加到该键对应的值数组中;否则,我们创建一个新的对象,并将其添加到累加器中。最后,我们将累加器转换为数组,并输出结果。
示例如下:
let arr = [
{ key: 'a', value: 1 },
{ key: 'b', value: 2 },
{ key: 'a', value: 3 },
{ key: 'c', value: 4 },
{ key: 'b', value: 5 },
{ key: 'a', value: 6 }
];
合并后结果:
let result = [
{ key: 'a', values: [1, 3, 6] },
{ key: 'b', values: [2, 5] },
{ key: 'c', values: [4] }
];
实现代码:
let result = arr.reduce((acc, curr) => {
if (acc[curr.key]) {
acc[curr.key].values.push(curr.value);
} else {
acc[curr.key] = { key: curr.key, values: [curr.value] };
}
return acc;
}, {});
let finalResult = Object.values(result);
console.log(finalResult);
本文链接:http://so.lmcjl.com/news/20516/