Vue JS:添加API JSon中的值



我是Vue JS的新开发人员。下面是我的响应主体,我想将只有is_paid:truepaid_amountamount值相加。。在Vue JS中有办法做到这一点吗?

EDit:因为它有is_paid:false,所以对于30(amount(+20(paid_amount(加上100

{
"payment" : {
"installment_payment" : {
"installments" : [
amount:30,
date: "",
is_paid: true,
},
{
amount: 100,
date: "",
is_paid: false,
},
{
amount: "",
date: "",
is_paid: false,
},
{
amount: "",
date: "",
is_paid: true,
}
],
remaining: ""
},
paid_amount: 20,
},
}

筛选已付款分期付款。。。。

let installments = apiResponse.payment.installment_payment.installments;
let paidInstallments = installments.filter(obj => obj.is_paid);

使用reduce求和。。。

let totalPaid = paidInstallments.reduce((sum, obj) => sum + parseInt(obj.amount), 0);

演示。。。

let installments = [
{ amount:5, is_paid:true }, { amount:10, is_paid:false },
{ amount:15, is_paid:true }, { amount:20, is_paid:false }
];
// 5 and 15 are paid, so sum should be 20
let paidInstallments = installments.filter(obj => obj.is_paid);
let totalPaid = paidInstallments.reduce((sum, obj) => sum + parseInt(obj.amount), 0);
console.log(totalPaid);

你也可以一次过滤和减少,就像这样。。。

// filter all installments and assign 0 as the payment when is_paid is false
let totalPaid = installments.reduce((sum, obj) => {
const amountPaid = obj.is_paid ? parseInt(obj.amount) : 0;
return sum + amountPaid;
}, 0);
console.log(totalPaid);

最新更新