Прилагане на предаване на функция като параметър в JavaScript

Нека направим функция, която като параметър ще приема масив, а втори параметър - функция. Предадената функция трябва да бъде приложена към всеки елемент от масива:

javascriptfunction test(arr, func) {
  // ще върнем променения масив
}

Нека я реализираме:

javascriptfunction test(arr, func) {
  // Стартираме цикъл:
  for (let i = 0; i < arr.length; i++) {
    arr[i] = func(arr[i]); // прилагаме функцията към всеки елемент
  }
  
  return arr; // връщаме променения масив
}

Нека приложим нашата функция към някакъв масив:

javascriptfunction test(arr, func) {
  for (let i = 0; i < arr.length; i++) {
    arr[i] = func(arr[i]);
  }
  
  return arr;
}

// Преобразуваме масива от числа в масив от техните квадрати:
let result = test(
  [1, 2, 3],
  function(num) {return num * num;}
);

console.log(result); // ще изведе [1, 4, 9]

Нека оформим извикването на нашата функция по-елегантно (така е по-прието):

javascriptfunction test(arr, func) {
  for (let i = 0; i < arr.length; i++) {
    arr[i] = func(arr[i]);
  }
  
  return arr;
}

// Оформяме кода по-елегантно:
let result = test([1, 2, 3], function(num) {
  return num * num;
});

console.log(result); // ще изведе [1, 4, 9]
Задание 1

Без да надничате в моя код, реализирайте такава функция test самостоятелно.

Задание 2

Извикайте създадената от вас функция test, като й подадете като параметър масив с числа. Направете така, че функцията да върне масив с кубовете на тези числа.