Вопрос по jquery, json, javascript – Как сложить массив JSON

9

Как можно суммировать элементы массива JSON следующим образом, используя jQuery:

<code>"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",}],
</code>

Результат должен быть:

totalTaxes = 60

@ epascarello: очевидно, вы не слышали о «новой математике» sberry
@ Луи: Вы забыли знак минус перед одним из этих 25-х. sberry
несколько непревзойденных{s kev
10? В самом деле? 25 + 25 + 10 = 10? И ваш JOSN недействителен. epascarello
@ epascarello Результат в базе-60. Ates Goral

Ваш Ответ

2   ответа
12

Если ты действительно должен используйте jQuery, вы можете сделать это:

var totalTaxes = 0;

$.each(taxes, function () {
    totalTaxes += this.amount;
});

Или вы можете использовать ES5reduceункция @ в браузерах, которые ее поддерживают:

totalTaxes = taxes.reduce(function (sum, tax) {
    return sum + tax.amount;
}, 0);

Или просто используйте цикл for, как в ответе @ epascarello ...

20

Работа с 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
Спасибо. Я принял участие в длинном ответе JSON. Я извиняюсь за ошибки в моем вопросе. Но сумма работает с этим. ;) Louis
За исключением того, что это не JSON. JSON - это текстовый формат. Это просто объект JavaScript и запись массива. jfriend00

Похожие вопросы