Примена прослеђивања функције као параметра у 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, прослеђујући јој као параметар низ са бројевима. Направите тако да функција врати низ са кубовима тих бројева.