Metoda map
Metoda map omogoča uporabo dane
funkcije za vsak element polja.
Pri tem metoda ne spremeni izvornega polja, temveč
vrne spremenjeno polje.
Metoda kot parameter prejme funkcijo, ki
se izvede za vsak element polja.
To, kar ta funkcija vrne prek return
za element polja, postane nova vrednost
tega elementa (glej primere).
Funkciji lahko podamo 3 parametre.
Če ti parametri obstajajo (niso obvezni),
potem prvi samodejno prejme element
polja, drugi prejme njegovo zaporedno številko v polju
(indeks), tretji pa samo polje.
Sintaksa
let novoPolje = polje.map(function(element, indeks, polje) {
koda
return spremenjen element;
});
Primer
Ustvarimo polje, kjer je vsak element dvakrat večji od ustreznega elementa začetnega polja:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Rezultat izvajanja kode:
[2, 4, 6, 8, 10]
Primer
Ustvarimo polje, kjer vsak element nastane tako - vrednost elementa se pomnoži z njegovo zaporedno številko v polju:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Rezultat izvajanja kode:
[0, 2, 6, 12, 20]
Primer
Po potrebi lahko v tretji parameter podamo samo polje:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
// tukaj bo dostopno polje arr
});
Primer
Metodo map lahko uporabimo tudi za
preiskovanje večdimenzionalnih polj. Naj bo, na primer,
dano takšno polje:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Preiščimo to polje z
map in izpišimo njegove elemente v konzolo:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Kot rezultat bo console.log izpisal [1,
2, 3], nato [4, 5, 6], nato
[7, 8, 9].
Kot vidite, v spremenljivko elem pridejo
podpolja. Zdaj pa uporabimo metodo
map za vsako podpolje in vsak njegov element kvadrirajmo:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
return elem.map(function(num) {
return num * num;
});
});
console.log(result);