我正在尝试找到一种方法来编写一个函数来对数组中的所有元素求和。我一直在尝试使用 JavaScript 的 reduce 函数来实现这一点。我遇到的问题是我希望这个函数既适用于空数组,也适用于包含元素作为单独场景的数组。以下示例通过了空数组的测试用例,但当数组有元素时则未通过,反之亦然。
function sum (numbers) {
numbers = ['a', 'b', 'c'];
return numbers.reduce(function (x, y, i) {
return x + y + i;
}), 0 };
我正在查看reduce函数的签名,并尝试在此基础上实现它,但我的知识似乎缺少一些东西。
function (previousValue, currentElement, currentIndex, array)
最佳答案
以下内容适用于数字数组和空数组(结果显然为零)
var sum = numbers.reduce(function(prev,curr){
return curr + prev;
},0);
下面是两个场景的演示
function sum(numbers){
var x = numbers.reduce(function(prev,curr){
return curr + prev;
},0);
return x;
}
alert(sum([1,2,3]));
alert(sum([]));
关于javascript - 在Javascript中使用reduce对空数组和非空数组求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34153769/