How to Sum Json Array
How Can I to Sum Elements of a Json Array Like This, Using jQuery: "Taxes": [ { "Amount": 25, "Currencycode": "Usd", "Decimalplaces": 0, "Taxcode": "Yri" }, {...
How can I to sum elements of a JSON array like this, using jQuery:
"taxes": [
{ "amount": 25, "currencyCode": "USD", "decimalPlaces": 0, "taxCode": "YRI" },
{ "amount": 25, "currencyCode": "USD", "decimalPlaces": 0, "taxCode": "YRI" },
{ "amount": 10, "currencyCode": "USD", "decimalPlaces": 0, "taxCode": "YRI" }
]
The result should be:
totalTaxes = 60
2 Answers
Working with JSON 101
var foo = {
taxes: [
{ amount: 25, currencyCode: "USD", decimalPlaces: 0, taxCode: "YRI"},
{ amount: 25, currencyCode: "USD", decimalPlaces: 0, taxCode: "YRI"},
{ amount: 10, currencyCode: "USD", decimalPlaces: 0, taxCode: "YRI"}
]
},
total = 0, //set a variable that holds our total
taxes = foo.taxes, //reference the element in the "JSON" aka object literal we want
i;
for (i = 0; i < taxes.length; i++) { //loop through the array
total += taxes[i].amount; //Do the math!
}
console.log(total); //display the result
If you really must use jQuery, you can do this:
var totalTaxes = 0;
$.each(taxes, function () {
totalTaxes += this.amount;
});
Or you can use the ES5 reduce function, in browsers that support it:
totalTaxes = taxes.reduce(function (sum, tax) {
return sum + tax.amount;
}, 0);
Or simply use a for loop like in @epascarello's answer...