在JavaScript中,可以使用reduce()方法来通过键和求和来缩减对象数组。
reduce()方法是数组的一个高阶函数,它接受一个回调函数作为参数,并且可以传递一个初始值。回调函数接受四个参数:累加器(accumulator)、当前值(current value)、当前索引(current index)和原始数组(original array)。
首先,我们需要定义一个对象数组,每个对象包含一个键和一个值。例如:
const data = [
{ key: 'a', value: 1 },
{ key: 'b', value: 2 },
{ key: 'a', value: 3 },
{ key: 'c', value: 4 },
{ key: 'b', value: 5 }
];
接下来,我们可以使用reduce()方法来缩减这个对象数组。我们可以将键作为累加器的属性,值作为累加器的属性值,并将每个对象的值加到对应键的属性值上。如果键不存在,则创建一个新的属性。
const result = data.reduce((accumulator, currentValue) => {
if (accumulator[currentValue.key]) {
accumulator[currentValue.key] += currentValue.value;
} else {
accumulator[currentValue.key] = currentValue.value;
}
return accumulator;
}, {});
在上面的代码中,我们使用了一个空对象作为初始值。回调函数检查累加器中是否已经存在当前对象的键,如果存在,则将当前对象的值加到累加器的属性值上;如果不存在,则创建一个新的属性,并将当前对象的值赋给该属性。
最后,我们可以打印出结果:
console.log(result);
输出结果为:
{ a: 4, b: 7, c: 4 }
这个结果表示,原始对象数组中的键'a'的值为4,键'b'的值为7,键'c'的值为4。
推荐的腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云