有没有办法在对象数组上使用.reduce()?

时间:2017-01-31 15:15:19

标签: javascript arrays

我想将我在JavaScript数组中的所有项目添加到项目数量中。我有一组像这样的对象:

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()重构它。到目前为止,我没有任何运气,因为我已经尝试将其映射出来并减少它。是否可以通过reduce来实现这一目标?

1 个答案:

答案 0 :(得分:7)

当然,这是reduce的最标准用例:

var sum = products.reduce((sum, p) => sum + p.price*p.quantity, 0);