Metóda map
Metóda map umožňuje aplikovať zadanú
funkciu pre každý prvok poľa. Pritom
metóda nemení pôvodné pole, ale
vracia upravené.
Metóda v parametri dostane funkciu, ktorá
vykoná pre každý prvok poľa.
To, čo vráti táto funkcia cez return
pre prvku poľa, sa stane novou hodnotou
tohto prvku (pozri príklady).
Do funkcie je možné odovzdať 3 parametre.
Ak tieto parametre existujú (nie sú povinné),
tak do prvého automaticky príde prvok
poľa, do druhého príde jeho číslo v poli
(index), a do tretieho - samotné pole.
Syntax
let nove pole = pole.map(function(prvok, index, pole) {
kod
return upraveny prvok;
});
Príklad
Vytvorme pole, kde každý prvok je dvakrát väčší ako zodpovedajúci prvok počiatočného poľa:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Výsledok vykonania kódu:
[2, 4, 6, 8, 10]
Príklad
Vytvorme pole, kde každý prvok sa získa tak - hodnota prvku sa vynásobí jeho poradovým číslom v poli:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Výsledok vykonania kódu:
[0, 2, 6, 12, 20]
Príklad
V prípade potreby je možné do tretieho parametra odovzdať samotné pole:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
tu bude dostupné pole arr
});
Príklad
Metódu map je možné použiť aj pre
prechádzanie viacrozmerných polí. Nech je napríklad
dané takéto pole:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Prejdime toto pole pomocou
map a vypíšme jeho prvky do konzoly:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Výsledkom console.log bude výpis [1,
2, 3], potom [4, 5, 6], potom
[7, 8, 9].
Ako vidíte, do premennej elem prichádzajú
podpolia. Aplikujme teraz metódu
map na každé podpole a umocnime
každý jeho prvok na druhú:
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);