誰かがreduce()が配列項目のインスタンスを数え、それらを下のコードの空のオブジェクトに追加する方法を説明してもらえますか?たとえば、最終的には{ car: 5, truck: 3 }
となります。 obj[item]
が何であるかは分かりません。具体例理解reduce()メソッドのJavaScript
const data = ['car', 'car', 'truck', 'truck', 'bike', 'walk', 'car', 'van', 'bike', 'walk', 'car', 'van', 'car', 'truck' ];
const transportation = data.reduce(function(obj, item) {
if (!obj[item]) {
obj[item] = 0;
}
obj[item]++;
return obj;
}, {});
console.log(transportation);//{car: 5, truck: 3, bike: 2, walk: 2, van: 2}
"* obj [item]が何であるかは分かりません。*" obj "は何ですか?そうでない場合は、 'reduce'がどのように機能するかを確認してください。いずれにしても、デバッグ技術を自由に使用することができます。コールバックの上に 'console.log(obj)'を置くと、すべての動作を理解できます。 – dfsq
'item === 'car''、' obj [item] 'が' obj [' car '] 'または' obj.car'のとき - それは役に立ちますか? –
'obj [item]'は、コールバックに渡される現在の反復値の後に名前が付けられた 'obj'オブジェクトの要素を参照しています。したがって、たとえばobj ['car'] 'と解釈される可能性があります。 – Utkanos