我试图创建一个函数,该函数将一个数组作为参数,然后将数组的每个元素乘以其索引,然后将它们相加并返回这些值。但是,我收到我无法解释的回报。Javascript .reduce()未按预期运行?
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'才能得到你所期望的。 – Lends