我想了解reduce函數的原始代碼以及如何使用它。通過把它們加起來就像一個正常的減少功能不,但它不工作,我想它的方式減少JavaScript中的函數
var each = function(collection, callback){
if(Array.isArray(collection)){
for(var i=0;i<collection.length;i++){
callback(collection[i]);
}
}
else{
for(var key in collection){
callback(collection[key]);
}
}
};
var reduce = function(collection, callback, accumulator){
each(collection, function(element){
if(accumulator === undefined) {
return accumulator = element;
}else {
return accumulator = callback(accumulator, element);
};
});
return accumulator;
};
var sArr = [3, 2, 3, 4, 5];
each(sArr, function(collection){
console.log(collection);
});
reduce(sArr, function(collection, prev){
console.log(prev = prev + sArr);
});
在上面,你可以看到,我想我所有的陣列減少到一個元素我的代碼是。
有人可以檢查我是否做錯了,如果你可以向外行解釋我的減少功能是一行一行嗎?
對不起新手。
你在等什麼,你會得到什麼? (我猜你可能希望你的'reduce'函數在最後返回一個值) –
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce – Ryan
@ JosiahKeller:我得到了一系列的減法數字:「21,2,3,4,5」 –