Funktsiooni edastamise kui parameetri rakendamine JavaScriptis

Loome funktsiooni, mis võtab esimese parameetrina massiivi ja teise parameetrina - funktsiooni. Edastatud funktsiooni peaks rakendatama iga massiivi elemendi peale:

javascriptfunction test(arr, func) {
  // tagastame muudetud massiivi
}

Rakendame:

javascriptfunction test(arr, func) {
  // Käivitame tsükli:
  for (let i = 0; i < arr.length; i++) {
    arr[i] = func(arr[i]); // rakendame funktsiooni igale elemendile
  }
  
  return arr; // tagastame muudetud massiivi
}

Rakendame oma funktsiooni mõnele massiivile:

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

// Teisendame numbrite massiivi nende ruutude massiiviks:
let result = test(
  [1, 2, 3],
  function(num) {return num * num;}
);

console.log(result); // kuvab [1, 4, 9]

Vormistame oma funktsiooni väljakutse elegantsemalt (nii on rohkem kombeks):

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

// Vormistame koodi elegantsemalt:
let result = test([1, 2, 3], function(num) {
  return num * num;
});

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

Minu koodi piilumata realiseerige selline sama funktsioon test iseseisvalt.

Задание 2

Kutsuge loodud funktsioon test välja, andes sellele parameetrina numbritega massiivi. Tehke nii, et funktsioon tagastaks nende numbrite kuupidega massiivi.