减少JavaScript中的数组

时间:2018-11-16 21:16:03

标签: javascript reduce

我创建了FormArray,用于撰写订单商品。 从Form生成的JSON就是这样。

{
   "validFrom":"2018-11-16T21:07:02.167Z",
   "validTo":"2018-12-01T21:07:02.167Z",
   "totalPriceOfOrder": "{{Price of all items this need be calculated from all child object total price}}"
   "items":[
      {
         "name":"Head Phones",
         "unit":"",
         "quantity":"1",
         "price":"200",
         "totalPrice":""
      },
      {
         "name":"",
         "unit":"",
         "quantity":"2",
         "price":"200",
         "totalPrice":""
      }
   ]
}

我需要在Items数组中计算: 1.数量*价格=总价格 例如

{
         "name":"",
         "unit":"",
         "quantity":"3",
         "price":"200",
         "totalPrice":"600"
}

然后,我需要将Items数组的所有totalPrices总计加到父属性totalPriceOfOrder。

我尝试使用reduce,但是没有成功。 你能给我例子还是建议

非常感谢

1 个答案:

答案 0 :(得分:3)

这一定很简单-

 let propertytotalPriceOfOrder = order.items.map(item => +item.unit * +item.quantity * +item.price);

其中order是您的整个json对象。

注意:使用+运算符是因为您在json中有string值,需要在计算number之前将其转换为arithmetic