Soy nuevo desarrollador en Vue JS. a continuación se muestra el cuerpo de mi respuesta, y quería sumar los valores de amount que tiene is_paid:true solo paid_amount ... ¿hay alguna manera de hacer esto en Vue JS?
EDITAR: para ex sum 30 ( amount ) + 20 (cantidad_pagada) sin 100 ya que tiene paid_amount is_paid:false
{ "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, }, }Filtrar por cuotas pagadas....
let installments = apiResponse.payment.installment_payment.installments; let paidInstallments = installments.filter(obj => obj.is_paid);Sumar usando reducir...
let totalPaid = paidInstallments.reduce((sum, obj) => sum + parseInt(obj.amount), 0);Manifestación...
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);También puede filtrar y reducir de una sola vez, así...
// 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);