我正在寻找一种简单的方法来执行以下操作。我尝试过使用 lodash.reduce 来做到这一点,但它很笨重,有没有更简单的方法。
来自:
[{a: 'meow'}, {a: 'woof'}]
致:
{a: ['meow', 'woof']}
最佳答案
你可以用纯 JS 来做到这一点,不需要 loadash。
在输入数组上调用数组的reduce
方法,并将数组缩减为一个对象,循环遍历内部对象的键:
const input = [{a: 'meow'}, {a: 'woof'}, {b: 'hi'}, {a: 'dog', c: 'bye'}, {}];
console.log(input.reduce((acc, val) => {
Object.keys(val).forEach(key => {
if(!acc[key]) {
acc[key] = [];
}
acc[key].push(val[key]);
});
return acc;
}, {}));
关于javascript - 将对象数组转换为具有分组键作为数组的对象的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54015878/