function make(...args) {
var arr = [];
args.forEach(i => arr.push(i))
var inner = function(...args2) {
args2.forEach(i => {
if (typeof i == 'function') {
return arr.reduce(i)
} else {
arr.push(i);
return inner;
}
});
}
return inner;
}
function sum(a, b) {
return a + b
}
make(1, 5)(5)(sum)
По итогу должно выдать 11, но выдаёт ошибку Где я накосячил ?
Ошибка в том, что return
делается из callback
, а не из функции, таким образом inner
возвращает undefined
всегда.
Вместо forEach
, здесь проще использовать обычный for
function make(...args) {
var arr = [];
args.forEach(i => arr.push(i))
var inner = function(...args2) {
for (var i = 0; i < args2.length; i++) {
if (typeof args2[i] == 'function') {
return arr.reduce(args2[i]);
} else {
arr.push(args2[i]);
}
};
return inner;
}
return inner;
}
function sum(a, b) {
return a + b
}
console.log(make(1, 5)(5)(sum))
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пишу змейку на JavascriptНужно чтобы после прохождения через ячейку где находится еда длина змеи увеличивалась
В блоке два одинаковых элемента, нужно обработать события клика так чтобы dropdown открывался только у элемента на который кликнули