在Javascript中使用reduce来对空数组和非空数组求和

Lil*_*ilp 0 javascript arrays

我试图找到一种方法来编写一个函数,该函数总结了数组中的所有元素.我一直在尝试使用JavaScripts reduce函数来实现它.我遇到的问题是我希望这个函数既可以在空数组上运行,也可以在元素作为单独场景的情况下运行.以下示例将测试用例传递给空数组,但是当数组包含元素时则不传递,反之亦然.

function sum (numbers) {
  numbers = ['a', 'b', 'c'];
  return numbers.reduce(function (x, y, i) {
  return x + y + i; 
}), 0 };
Run Code Online (Sandbox Code Playgroud)

我正在查看reduce函数的签名,并尝试在此基础上实现这一点,但在我的知识中似乎缺少某些东西.

function (previousValue, currentElement, currentIndex, array)
Run Code Online (Sandbox Code Playgroud)

Jam*_*iec 5

以下工作与数组数组和一个空数组(结果显然为零)

var sum = numbers.reduce(function(prev,curr){
    return curr + prev;
},0);
Run Code Online (Sandbox Code Playgroud)

下面是两个场景的演示

function sum(numbers){
  var x = numbers.reduce(function(prev,curr){
    return curr + prev;
  },0);
  return x;
}

alert(sum([1,2,3]));
alert(sum([]));
Run Code Online (Sandbox Code Playgroud)