![](/img/trans.png)
[英]How to group and add their value in array of objects in javascript?
[英]How to add a value in array of JSON objects on javascript?
我有一個名為支付的數組 json 對象
[ { billed : "100", owed: "50" }, { billed : "200", owed: "100" }]
我想總結“計費”字段,凈答案應該是 300。我嘗試了以下操作:
let paidPaymentCents = 0;
for (let payment in payments) {
paidPaymentCents += payments[payment].billed;
}
有沒有更好的方法使用 reduce : https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
JavaScript 的reduce()就是這個方法。 一旦解析了JSON
並且您有一個數組或對象:
let testAry = [{ billed : "100", owed: "50" }, { billed : "200", owed: "100" }],
amt = testAry
// 1. isolate and parse
.map(item => parseFloat(item.billed))
// 2. add up all billed
.reduce((a, b) => a + b, 0);
console.log(amt)
根據數據的一致性,您可能希望使用Number
而不是parseFloat
。 更多信息: parseFloat vs Number
你可以讓它更小(感謝@Devon):
.reduce((acc, curr) => acc + parseFloat(curr.billed), 0)
使用Array.prototype.reduce
可以很容易地做到這一點。 在reduce 中,您可以將每個element.billed
用Number
包裹起來,將其視為一個數字實例。 您將從0
作為累加器開始並添加每個element.billed
以獲得總數。 下面是一個例子:
const data = [{ billed: "100", owed: "50" }, { billed: "200", owed: "100" }]; const total = data.reduce((runningTotal, element) => { runningTotal += Number(element.billed); return runningTotal; }, 0); console.log(`Total billed amount is ${total}`);
循環中的每個支付對象都具有結構{ billed : "100", owed: "50" }
所以你可以做
let payments = [ { billed : "100", owed: "50" }, { billed : "200", owed: "100" }]
let paidPaymentCents = 0;
for (var i = 0;i < payments.length; i++) {
paidPaymentCents += Number(payments[i].billed);
}
並且您將擁有paidPaymentCents
將擁有總數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.