显然简单的函数不返回任何东西

时间:2018-11-12 12:44:16

标签: javascript jquery arrays json function

我确定我只是要花点时间,但我对此一无所知。我想创建一个快速函数,以对数组中的特定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 :(得分:1)

以防万一,您希望使用普通的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'))

答案 1 :(得分:0)

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不需要返回任何内容,只需为集合的每个成员调用一个函数,则在调用完所有元素之后,您需要在调用$ .each之后返回总数。