Javascript 将所有值相加';数组Vuejs中属性的

Javascript 将所有值相加';数组Vuejs中属性的,javascript,arrays,vue.js,vuejs2,Javascript,Arrays,Vue.js,Vuejs2,我正在开发一个小应用程序,我有一个包含对象的数组,其中一个名为“标签”,另一个名为“值”。我想要的是将属性“value”的所有值相加,这样我就有了一个总值 Vue/JS data() { totalRequest: 0, donutData: [ { label: 'Openstaande verzoeken', value: 20 }, { label: 'Geaccepteerde verzoeken', value: 25 }, {

我正在开发一个小应用程序,我有一个包含对象的数组,其中一个名为“标签”,另一个名为“值”。我想要的是将属性“value”的所有值相加,这样我就有了一个总值

Vue/JS

data() {

totalRequest: 0,

   donutData: [
        { label: 'Openstaande verzoeken', value: 20 },
        { label: 'Geaccepteerde verzoeken', value: 25 },
        { label: 'Afgewezen verzoeken', value: 10 }
    ],

},

created() {
        this.totalRequest = //here goes the function to add up all value's of the property 'value' (total value should be 55)
}
HTML

所以在这个例子中,我有3个对象,总值为55(全部3个属性“值”)。我怎样才能做到这一点?提前谢谢

dashton的回答,为vue复制

created() {
        this.totalRequest = this.donutData.reduce((acc, item) => acc + item.value, 0);
}
这将有助于:

var sum = donutData.reduce((acc, item) => acc + item.value, 0);

这与vue无关,似乎是一个javascript问题,有很多方法可以做到这一点,更简单的方法是只做一个forEach:

es4:

但当您询问如何显示{{totalRequest}}时,您可能希望查看计算属性:

这是vue在视图中动态设置数据的一种方式,因此您可以接受dashton的答案并执行以下操作:

HTML

Vue/js

data() {
   donutData: [
        { label: 'Openstaande verzoeken', value: 20 },
        { label: 'Geaccepteerde verzoeken', value: 25 },
        { label: 'Afgewezen verzoeken', value: 10 }
    ],

},
computed: {
    totalRequest() {
      return this.donutData.reduce((acc, item) => acc + item.value, 0);
    }
}

数组。减少就是你所需要的
donutData.Reduce((acc,item)=>{return acc+=item.value;},0)我已经用数组尝试过了。Reduce,但不起作用。这在物体上是可能的吗?我需要对象的第二个属性。好的,这太棒了。我将重现我的问题中针对VueJS的答案。当我们在Vuex computed属性中引入局部变量以获得数组值之和时,它将失去反应性。这个解决方案克服了这个问题。在这些地方使用computed是一个更好的方法+1.非常好!谢谢
for(i in donutData) { this.totalRequest += donutData[i].value; }
total value {{ totalRequest }}
data() {
   donutData: [
        { label: 'Openstaande verzoeken', value: 20 },
        { label: 'Geaccepteerde verzoeken', value: 25 },
        { label: 'Afgewezen verzoeken', value: 10 }
    ],

},
computed: {
    totalRequest() {
      return this.donutData.reduce((acc, item) => acc + item.value, 0);
    }
}