Я хочу написать reduce
самостоятельно. Но за последние 4 часа я не мог.Как написать собственную функцию `reduce`?
var a = [10, 21, 13, 56];
function add(a, b) { return a + b }
function foo(a, b) { return a.concat(b) }
Array.prototype.reduce2 = function() {
// I do not understand how to handle the function of the inlet
// I know that I should use arguments, but I don't know how many arguments there will be
var result = 0;
for(var i = 0; i < arguments.length; i++) {
result += arguments[i];
}
return result;
};
console.log(a.reduce(add), a.reduce2(add)) // 100 100
console.log(a.reduce(add, 10), a.reduce2(add, 10)) // 110 110
Да, я знаю, что это похоже на множество тем, но я не мог найти ответ. Что мне не хватает или что-то не так?
Вам не нужно использовать 'arguments' - объявить их в явном виде' функции (редуктор , initialValue) ' – zerkms
Вы просмотрели [Polyfill on MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce#Polyfill)? Это должно дать вам несколько советов – UnholySheep