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))
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости