【问题标题】:Vue JS: add values from API JSonVue JS:从 API JSon 添加值
【发布时间】:2022-01-13 18:53:11
【问题描述】:

我是 Vue JS 的新开发人员。 下面是我的响应正文,我想将具有is_paid:trueamount 值与仅paid_amount 相加......有没有办法在Vue JS 中做到这一点?

编辑:ex sum 30 (amount) + 20 (paid_amount) 没有 100,因为它有 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,
                },

}

【问题讨论】:

    标签: javascript vue.js


    【解决方案1】:

    筛选付费分期付款....

    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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-24
      • 2020-10-03
      • 2017-07-04
      • 2021-04-22
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      • 2020-05-13
      相关资源
      最近更新 更多