了解Array.reduce()和范围

时间:2014-08-05 18:19:11

标签: javascript arrays

我正在尝试使用array.reduce添加数组。如果我将我的代码封装在一个函数中,它会破坏:

var test = [1,2,3,4,5,6];

function add(arr){
    arr.reduce(function(prev, curr, i, fullArr){
        return prev + curr
    })
}

var result = add(test)
var result2 = arr.reduce(function(prev, curr, i, fullArr){
    return prev + curr
})
console.log(result)    // undefined
console.log(result2)   // works, 21

为什么第一个结果未定义?

1 个答案:

答案 0 :(得分:2)

呵呵,我之前做过这个......你必须return来自add

function add(arr) {
    return arr.reduce(function(prev, curr, i, fullArr) {
        return prev + curr;
    });
}

console.log(add(test)); // => logs 21