Не могу понять почему не самбится кодворс
в кодворсе https://www.codewars.com/kata/5411e3e95f3a7f6a7a0000e3/train/javascript выдает ошибку, не могу понять в чем ошибка
Array.prototype.reduce = function(process, initial) {
for (let i = 0; i < this.length; i++) {
if (!initial) {
i++;
initial = this[0];
}
initial = process(initial, this[i]);
}
return initial;
}
console.log(['a','y','!'].reduce(function(x,y){return x+y}, 'y'));
Ответы (1 шт):
Автор решения: EzioMercer
→ Ссылка
Во первых не надо этот if в for, каждый проверяете попусту. Причём сама проверка тоже неверная. Если я передам в initial значение 0, то вы его пропустите т.к. !0 в if воспринимается как true, вам надо проверять именно на значение undefined:
Array.prototype.reduce = function(process, initial) {
let i = 0;
if (initial === undefined) {
initial = this[0];
i = 1;
}
for (; i < this.length; ++i) initial = process(initial, this[i]);
return initial;
}
console.log(['a','y','!'].reduce((x,y) => {return x + y}, 'y'));