Видимо простая функция, ничего не возвращающая - PullRequest
0 голосов
/ 12 ноября 2018

Я уверен, что у меня просто есть минутка, но я не могу понять это ни за что.Я хотел создать быструю функцию для суммирования значений конкретного JSON-объекта по массиву, но она ничего не возвращает.Вот код:

var a=[{"b":"23"},{"b":"37"}]
function sumJSON(json,elem){
    var total=0;
    $.each(json,function(index,item){
        var count=index+1;
        total+=Number(item[elem]);
        if(count===json.length){
            return total;
        }
    })
}
console.log(sumJSON(a,"b"));

Вот код jsfiddle

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

На всякий случай, если вы хотите, чтобы это было решено с помощью простого JavaScript.

var a = [{"b":"23"},{"b":"37"}]

function sumJSON(a,key) {
  return a.reduce((s, data) => s + (+data[key]), 0)
}

console.log(sumJSON(a, 'b'))
0 голосов
/ 12 ноября 2018
var a=[{"b":"23"},{"b":"37"}]
function sumJSON(json,elem){
    var total=0;
    $.each(json,function(index,item){
        total+=Number(item[elem]);
    })
    return total;
}
console.log(sumJSON(a,"b"));

$ каждый не должен ничего возвращать, просто вызывает функцию для каждого члена коллекции, вам нужно возвращать сумму после вызова $ .each, как только функция была вызвана для всех элементов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...