【发布时间】:2016-01-19 18:05:29
【问题描述】:
我正在尝试创建一个函数,该函数将数组作为参数,然后将数组的每个元素乘以其索引,然后求和并返回这些值。但是,我得到了我无法解释的回报。
var sum = 0;
function crazy_sum(numbers){
return numbers.reduce(function(previousValue,currentValue,currentIndex,array){
sum += currentValue*currentIndex;
return sum;
},0);
};
console.log(crazy_sum([2])); //returns 0, as expected
console.log(crazy_sum([2,3])); //returns 3, as expected
console.log(crazy_sum([2,3,5])); //returns 16 when I would expect 13
console.log(crazy_sum([2,3,5,2])); //returns 35 when I would expect 19
为什么我没有得到预期的结果?该函数实际上在做什么?
【问题讨论】:
-
您只需继续添加到
sum变量。您需要重置sum以获得您所期望的。
标签: javascript arrays function callback