首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Vue JS:从API JSon添加值

Vue JS:从API JSon添加值
EN

Stack Overflow用户
提问于 2022-01-13 18:53:11
回答 1查看 53关注 0票数 -1

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

EDit:对于ex 30 (amount) + 20 (paid_amount),因为它有is_paid:false,所以没有out 100

代码语言:javascript
复制
{
    "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,
                },

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-13 19:53:53

支付分期付款的过滤器。

代码语言:javascript
复制
let installments = apiResponse.payment.installment_payment.installments;
let paidInstallments = installments.filter(obj => obj.is_paid);

和使用减少..。

代码语言:javascript
复制
let totalPaid = paidInstallments.reduce((sum, obj) => sum + parseInt(obj.amount), 0);

演示..。

代码语言:javascript
复制
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);

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

代码语言:javascript
复制
// 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);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70701642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档