我是Vue JS的新开发人员。下面是我的响应体,我想把只有is_paid:true的is_paid:true值与paid_amount相加。在Vue JS中有办法做到这一点吗?
EDit:对于ex 30 (amount) + 20 (paid_amount),因为它有is_paid:false,所以没有out 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,
},
}
发布于 2022-01-13 19:53:53
支付分期付款的过滤器。
let installments = apiResponse.payment.installment_payment.installments;
let paidInstallments = installments.filter(obj => obj.is_paid);和使用减少..。
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);https://stackoverflow.com/questions/70701642
复制相似问题