Задача создать метод plus
Как в функции вернуть плюс
const plus = () => {
return +; // так не работает
}
Реализовать методы seven, plus, one, five, minus, two. seven(plus(one()))
seven(plus(one())) -> 8
five(minus(two())) -> 3
Ответы (3 шт):
Автор решения: surpri6e
→ Ссылка
Можно попытаться вернуть строку, содержащую 'плюс'. Но если честно, я не особо понял смысл задания, можете расписать по подробнее.
const plus = () => {
return '+'
}
console.log(plus())
Автор решения: OPTIMUS PRIME
→ Ссылка
Пусть функция plus получает число и возвращает специальный объект, описывающий данную операцию. А функции-числа, в свою очередь, получив такой объект, должны выполнить операцию, либо, если объект отсутствует - вернуть своё число.
Как-то так:
console.log( seven(plus(two())) ); // 9
console.log( seven(plus(two(times(three())))) ); // 13
function plus(num) {
return { key: '+', val: num };
}
function times(num) {
return { key: '*', val: num };
}
function calc(math_obj, num) {
switch (math_obj.key) {
case '+':
return num + math_obj.val;
case '*':
return num * math_obj.val;
}
}
function zero(math_obj) { return math_obj == undefined ? 0 : calc(math_obj, 0) }
function one(math_obj) { return math_obj == undefined ? 1 : calc(math_obj, 1) }
function two(math_obj) { return math_obj == undefined ? 2 : calc(math_obj, 2) }
function three(math_obj) { return math_obj == undefined ? 3 : calc(math_obj, 3) }
function four(math_obj) { return math_obj == undefined ? 4 : calc(math_obj, 4) }
function five(math_obj) { return math_obj == undefined ? 5 : calc(math_obj, 5) }
function six(math_obj) { return math_obj == undefined ? 6 : calc(math_obj, 6) }
function seven(math_obj) { return math_obj == undefined ? 7 : calc(math_obj, 7) }
function eight(math_obj) { return math_obj == undefined ? 8 : calc(math_obj, 8) }
function nine(math_obj) { return math_obj == undefined ? 9 : calc(math_obj, 9) }
function ten(math_obj) { return math_obj == undefined ? 10 : calc(math_obj, 10) }
Функции можно создавать и в цикле.
let nums = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'];
for (let i = 0; i < nums.length; i++) {
window[nums[i]] = function (math_obj) {
return math_obj == undefined ? i : calc(math_obj, i);
};
}