Примеры функций высшего порядка в js
- Функция принимает в качестве аргумента другую функцию
function mapArray(arr, func)
{
for (let i = 0; i<arr.length; i++)
{
console.log(func(arr[i]));
}
}
function toUpper(elem)
{
return elem.toUpperCase();
}
mapArray(arr, toUpper);
- Функция возвращает другую фунцию
function greeting(firstname)
{
return function (lastname)
{
return 'Hello ' + firstname + ' ' + lastname;
}
}
console.log(greeting('Sergey')('Soroka'));
Пример решения задач:
// 1
function firstFunc(arr, fn) {
let res = 'New value: '
for(let i = 0; i < arr.length; i++)
{
res += fn(arr[i]);
}
return res.trim();
}
function handler1(el) {
let arr1 = el.split('');
arr1.shift();
let rsa = el[0].toUpperCase() + arr1.join('');
return rsa;
}
console.log(firstFunc(['my', 'name', 'is', 'Trinity'], handler1));
function handler2(el) {
return `${el * 10}, `;
}
console.log(firstFunc([10, 20, 30], handler2) )
function handler3(el) {
return `${el.name} is ${el.age}, `;
}
console.log(firstFunc([{age: 45, name: 'Jhon'}, {age: 20, name: 'Aaron'}], handler3));
function handler4(el) {
return el.split("").reverse().join("") + ', ';
}
console.log(firstFunc(['abs', '123'], handler4));