Примеры функций высшего порядка в js

  1. Функция принимает в качестве аргумента другую функцию

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);
  1. Функция возвращает другую фунцию
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));