我使用此代码显示我所有的人。
blocksize
//每个人都是一个对象。在每个对象中都有多个对象(金钱给定)。我需要计算这些对象中存在的总金额(数组)的总和(分配给每个人的所有金钱)
//例如,相对于每个人的所有学分。
我过去常常用Php做到这一点,但是如何用Computing做到这一点呢?
Vuejs代码:
<div class="col-md-3" v-for="person in persons">
</div>
谢谢!
这里是一个人的样本。多个对象,并且在每个对象内部,usercashfloats具有多个对象,我需要计算出数量。 (每个对象中存在的数量)
答案 0 :(得分:2)
您的computed
属性应类似于:
computed:{
personsWithAount(){
const reducer = (accumulator, currentValue) => accumulator.amount + currentValue.amount;
return this.persons.map((pers)=>{
let p=pers;
if(pers.usercashfloat.length==0){
p.totalAmount=0;
}else if(pers.usercashfloat.length==1){
p.totalAmount=pers.usercashfloat[0].amount;
}else{
p.totalAmount=pers.usercashfloat.reduce(reducer);
}
return p;
});
}
}
reduce
函数文档
在您的模板中,您将看到类似:
<div class="col-md-3" v-for="person in personsWithAmount">
{{person.totalAmount}}
</div>
答案 1 :(得分:2)
可能是这样的:
<div class="col-md-3" v-for="person in preparedPersons">
</div>
var app = new Vue({
el: '#app',
data: {
persons:[],
},
computed: {
preparedPersons : function() {
return this.persons.map(
(p) => {
return {
...p,
sumOfAmount: p.usercashfloat.reduce(
(acc, cur) => acc.amount + cur.amount
)
};
}
)
}
},
methods: {
getPersons (),
},