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

Dav*_* Tu 0 javascript arrays

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

var products = [ {price: 1, quantity: 2},
                  {price: 4, quantity: 1},
                  {price: 2, quantity: 1} ]
Run Code Online (Sandbox Code Playgroud)

现在我正在使用

var sum = 0;
products.forEach(function(item){
  sum += item.price * item.quantity;
})
return sum;
Run Code Online (Sandbox Code Playgroud)

哪个有效,但我只是想知道我是否可以使用.reduce()重构它.到目前为止,我没有任何运气,因为我已经尝试将其映射出来并减少它.是否有可能通过减少来做到这一点?

Den*_*ret 7

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

var sum = products.reduce((sum, p) => sum + p.price*p.quantity, 0);
Run Code Online (Sandbox Code Playgroud)