私はオブジェクトの配列にreduceメソッドを使用しようとしています。各オブジェクトは人間であり、好きなアイスクリームの味です。目標は、この配列をプロパティとしてのフレーバとフレーバが値としてリストされた合計回数を含む単一のオブジェクトに減らすことです。オブジェクトの配列に対してreduceメソッドを使用して、それぞれに合計値を持つ単一オブジェクトを作成する方法は?
データ:
const data = [
{ name: 'Tyler', favoriteIceCreams: ['Strawberry', 'Vanilla', 'Chocolate', 'Cookies & Cream'] },
{ name: 'Richard', favoriteIceCreams: ['Cookies & Cream', 'Mint Chocolate Chip', 'Chocolate', 'Vanilla'] },
{ name: 'Amanda', favoriteIceCreams: ['Chocolate', 'Rocky Road', 'Pistachio', 'Banana'] },
{ name: 'Andrew', favoriteIceCreams: ['Vanilla', 'Chocolate', 'Mint Chocolate Chip'] },
{ name: 'David', favoriteIceCreams: ['Vanilla', 'French Vanilla', 'Vanilla Bean', 'Strawberry'] },
{ name: 'Karl', favoriteIceCreams: ['Strawberry', 'Chocolate', 'Mint Chocolate Chip'] }
];
これは私がこれまで持っているものですが、私は正直にそれを行う方法について確認していません。
let iceCreamTotals = {
Strawberry: 0,
Vanilla: 0,
Chocolate: 0,
CookiesCream: 0,
MintChocolateChip: 0,
RockyRoad: 0,
Pistachio: 0,
Banana: 0,
FrenchVanilla: 0,
VanillaBean: 0
}
data.reduce((total, current) => {
return iceCreamTotals
}, 0)
'(p [cream] || 0)+ 1'を' ++ p [cream] ||に減らすことができます。 1 'が、それは少し難読化されるかもしれません。 – RobG
@RobGはい、または '~~ p [cream] + 1' :) – ASDFGerte