使用JavaScript中的forEach从对象数组添加具有相同键的多个对象值

时间:2018-01-31 10:55:09

标签: javascript arrays object foreach vue.js

我正在使用Vue JS开发购物篮功能,我需要创建一个小计功能,将每个项目的价格和数量值相乘,并将它们相加以创建小计。

dataSet: [
  {
  "instock" : '',
  "price": 49,
  "qty": 1,
  "subTotal": '' 
  },
  {
  "instock" : '',
  "price": 29,
  "qty": 1,
  "subTotal" : '',
  },
]

我已设法返回每个'价格'和'数量'在对象数组上使用forEach,如下所示:

getSubTotal(dataSet) {    
   this.dataSet.forEach(function(data) {
   console.log(data.price)
})
console
49
29

到目前为止一切都那么好(我想),我得到了返回给我的价格值,唯一的问题是它们不会在同一个阵列中返回,而是单独返回。我真的需要将它们作为[49,29]返回,所以我可以将这些值一起添加到小计中。我能够通过索引对每个数组进行硬编码,然后单独添加它们,但这不会证明对象数组中新服装项的可能性。

非常感谢任何建议/批评或帮助。

2 个答案:

答案 0 :(得分:0)



getSubTotal(dataSet) {    
   return this.dataSet.map(function(data) {
     return data.price;
})




答案 1 :(得分:0)

好的,所以我能够弄清楚这一点。

dataSet: [
 {
 "price": 49,
 "qty": 1,
 },
 {
 "price": 29,
 "qty": 1,
 },
]

subTotals(data) {
  const calcArray = [data.price, data.qty];
  return calcArray.reduce((a,b)=> {
    //multiply price by quantity for subtotal
    return a*b;
  });
}