【发布时间】:2020-12-02 05:01:37
【问题描述】:
我试图让一个函数与Array.prototype.reduce 方法一样工作。
function a(collection, iterator, accumulator) {
for (i of Object.keys(collection)){
if (i===0 && accumulator === undefined){
accumulator = collection[i]
continue
}
accumulator = iterator(accumulator, collection[i])
}
return accumulator;
};
a([1,2,3],function(acc,cur){return acc += cur}, 0) // this works fine. returns 6
a([1,2,3],function(acc,cur){return acc += cur}) // expected 6 but returns NaN
a([1,2,3], function(memo){return memo}); // expected 1 but returns undefined
我不知道为什么accumulator没有设置为collection[i],而在初始值(函数a的第三个参数)未传递时保持为undefined。
【问题讨论】:
标签: javascript reduce