数组中每个元素的计算属性

时间:2019-03-30 23:32:46

标签: vue.js vuejs2 vue-component

我有一个用例,其中我的数据存储区包含一系列产品,每个产品都有价格和数量。

我想做的是计算每种产品的“总计”(价格x数量)。为此,我可以创建一个新的计算属性,该属性重新计算整个数组,并在总数后附加一个新属性。

问题在于,这需要在每次更改单个项时重新计算数组中的每个项。

我可以使用一个组件来进行计算和显示,但是我还需要计算一个总计(这是每个产品上所有已计算价格的总和)。

有没有更有效的方法?

[
  {
    "Product ID": 1,
    "Price": 10,
    "Quantity": 5,
    "Calculated Total": 50
  },
  {
    "Product ID": 2,
    "Price": 12,
    "Quantity": 10,
    "Calculated Total": 120
  }
]

1 个答案:

答案 0 :(得分:0)

您可以使用计算值来映射原始数组并求和。例如说原始数组命名为originalArray,请执行以下操作:

 computed: {
   computedTotal() {
      let sum = 0
      originalArray.map(item => sum += item["Calculated Total"])
      return sum
  }
}