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))
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Пишу змейку на JavascriptНужно чтобы после прохождения через ячейку где находится еда длина змеи увеличивалась
В блоке два одинаковых элемента, нужно обработать события клика так чтобы dropdown открывался только у элемента на который кликнули