JavaScript: откатить функцию до глубины
Основной JavaScript (синтаксис ES6): упражнение 114 с решением
Напишите программу на JavaScript, чтобы выполнить функцию до глубины n.
Пример решения:
HTML-код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>uncurry a function up to depth n</title>
</head>
<body>
</body>
</html>
Код JavaScript:
//#Source https://bit.ly/2neWfJ2
const uncurry = (fn, n = 1) => (...args) => {
const next = acc => args => args.reduce((x, y) => x(y), acc);
if (n > args.length) throw new RangeError('Arguments too few!');
return next(fn)(args.slice(0, n));
};
const add = x => y => z => x + y + z;
const uncurriedAdd = uncurry(add, 3);
console.log(uncurriedAdd(1, 2, 3));
Пример вывода:
6
Иллюстрированная презентация:
Блок - схема:
Демонстрация в реальном времени:
См. Pen javascript-basic-упражнение-114-1 от w3resource ( @ w3resource ) на CodePen .
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на JavaScript, чтобы избежать экранирования символов HTML.
Далее: Напишите программу на JavaScript для создания функции, которая принимает до одного аргумента, игнорируя любые дополнительные аргументы.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code