繁体   English   中英

如何将两个json对象键的值求和?

[英]How to sum value of two json object key?

"bills": [
          {
            "refNo": 17,
            "billDate": "1-apr-2016",
            "dueDate": "30-apr-2016",
            "pendingAmount": 4500,
            "overdueDays": 28
          },
          {
            "refNo": 20,
            "billDate": "15-apr-2016",
            "dueDate": "3-may-2016",
            "pendingAmount": 56550,
            "overdueDays": 15
          }
        ]

我想总结“ pendingAmount”字段。 它应该像未决的金额一样返回:61050

您可以使用Array#map然后使用Array#reduce展平您的对象,然后对地图的结果求和:

bills.map(bill => bill.pendingAmount).reduce((acc, bill) => bill + acc);

这是一个片段:

 var bills = [ { "refNo": 17, "billDate": "1-apr-2016", "dueDate": "30-apr-2016", "pendingAmount": 4500, "overdueDays": 28 }, { "refNo": 20, "billDate": "15-apr-2016", "dueDate": "3-may-2016", "pendingAmount": 56550, "overdueDays": 15 } ]; var res = bills.map(bill => bill.pendingAmount).reduce((acc, bill) => bill + acc); console.log(res) 

希望能帮助到你,

最好的祝福,

您可以使用以下代码段:

var sum = JSON.parse(bills).reduce(function(acc, val){
  return acc.pendingAmount + val.pendingAmount;
}, {pendingAmount: 0});

它在解析的JSON上使用array.prototype.reduce()函数。 reduce的第二个参数是传递给reduce函数的初始值

用这个:

let sum, billsPOJO;

billsPOJO = YOURJSON.bills;

sum = 0;

for (let i = 0; billsPOJO.length; i++) {
 sum += billsPOJO[i].pendingAmount; 
}

带有一些ES2015解构的单线:

json.bills.reduce(({pendingAmount: a}, {pendingAmount: b})=> a+b)

reduce()方法对一个累加器和数组中的每个元素(从左到右)应用一个函数,以将其减小为单个值。

 var bills = [ { "refNo": 17, "billDate": "1-apr-2016", "dueDate": "30-apr-2016", "pendingAmount": 4500, "overdueDays": 28 }, { "refNo": 20, "billDate": "15-apr-2016", "dueDate": "3-may-2016", "pendingAmount": 56550, "overdueDays": 15 } ]; var result = bills.reduce(function(_this, val) { return _this + val.pendingAmount }, 0); console.log(result) //61050 answer 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM