2017-01-31 9 views
0

私は自分のJavaScript配列にあるすべてのアイテムを一緒に追加したいです*アイテム数量。私はそうのようなオブジェクトの配列を持っている:オブジェクトの配列に対して.reduce()を使用する方法はありますか?

var products = [ {price: 1, quantity: 2}, 
        {price: 4, quantity: 1}, 
        {price: 2, quantity: 1} ] 

は、今私が働く

var sum = 0; 
products.forEach(function(item){ 
    sum += item.price * item.quantity; 
}) 
return sum; 

を使用していますが、私は.reduceを使用して、これをリファクタリングすることができます場合、私はちょうど)(思ったんだけど。これまでのところ私はそれをマッピングし、それを減らそうと努力してきたので、今まで私は運がなかった。これを減らすことで可能ですか?

もちろん
+1

私たちに 'reduce'を使用するように試みを表示し、我々はあなたが働いて、それを得るのを助けるでしょう。 – Amy

答えて

7

、それはreduceの最も標準的なユースケースです:

var sum = products.reduce((sum, p) => sum + p.price*p.quantity, 0); 
関連する問題