【发布时间】:2021-03-22 03:34:38
【问题描述】:
所以我目前有一个这样的数组:
const allMeats = ['Bacon','Bacon','Bacon', 'Steak', 'Lettuce', 'Cabbage','Cabbage','Cabbage','Steak', 'Veal']
我想对数组进行变形,使其成为一个对象数组,其键/值决定了重复项的值。
目前我有
const meatsGrouped = allMeats.reduce(
(acum, cur) => Object.assign(acum, { [cur]: (acum[cur] || 0) + 1 }),
[],
);
然而,这段代码将数组转换为:
[Bacon: 3, Steak: 2, Lettuce: 1, Cabbage: 3, Veal: 1]
理想情况下,我希望它看起来像这样:
[{Bacon: 3}, {Steak: 2}, {Lettuce: 1}, {Cabbage: 3}, {Veal: 1}]
谁能告诉我我做错了什么/遗漏了什么?
【问题讨论】:
标签: javascript arrays javascript-objects reduce higher-order-functions