私は解決しようとしてきたユニークな課題を持っています。JavaScript ES6は同じループ反復で配列にマップされる値の合計を得る
obj =
[
{item: "Skirt", price: 290},
{item: "Shoes", price: 300},
{item: "Skirt", price: 450}, {item: "Jeans", price: 35}
]
私が所望の出力のように見えるように、それぞれの平均価格と重複するアイテムの数を取得するには、これをマッピングしています:
UPDATE:
obj =
[
{
Skirt: 2,
price: 370, //2 being the count of skirt items, 370 average price
Jeans: 1,
Price: 35,
Shoes: 1,
Price: 30
}
]
私はこのようなオブジェクトを持っています
私はアイテムをマッピングするために、この機能を使用しています:
Av_price = function(values) {
let new_val = new Map();
for (let x of values)
new_val.set([x["item"]], [(new_val.get(x["item"])|| 0) +1), (new_val.get(x["price"] || x["price"])/x["price"]])
return [...new_val.entries()];
};
問題は次のとおりです。私は、スカートと言ってアイテムの数を数えることができますが、第2の値をまっすぐに得ることができません。私はそれらをアイテムの合計数で分割することができます(この例では、スカートの場合は「2」です)。 このユニークな挑戦は、2週間私の心を震わせました。同じループ反復でマップされているすべてのスカートの数を取得し、平均価格を得るためにその数で価格の合計を割り算する方法はありますか?
私は大いに助けに感謝します!
あなたの答えは平均を含む完全な解決策を提供していると思いますが、@ Jared Smithのような構造でそれを行うことは可能ですか?有難うございます。 – Zafar
希望の構造を更新しました。あなたは今それを見ていただけますか? – Zafar