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:
function test(arr, func) {
// tagastame muudetud massiivi
}
Rakendame:
function 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:
function 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):
function 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]
Minu koodi piilumata realiseerige selline
sama funktsioon test iseseisvalt.
Kutsuge loodud funktsioon test välja,
andes sellele parameetrina numbritega massiivi. Tehke
nii, et funktsioon tagastaks nende numbrite kuupidega
massiivi.