Metoda map
Metoda map umožňuje aplikovat zadanou
funkci na každý prvek pole. Přitom
metoda nemění původní pole, ale
vrací upravené.
Metoda v parametru přijímá funkci, která
se provede pro každý prvek pole.
To, co tato funkce vrátí pomocí return
pro prvku pole, se stane novou hodnotou
tohoto prvku (viz příklady).
Do funkce lze předat 3 parametry.
Pokud tyto parametry existují (nejsou povinné),
tak do prvního bude automaticky dosazen prvek
pole, do druhého bude dosazeno jeho pořadové číslo v poli
(index), a do třetího - samotné pole.
Syntaxe
let nové pole = pole.map(function(prvek, index, pole) {
kód
return upravený prvek;
});
Příklad
Vytvoříme pole, kde každý prvek je dvakrát větší než odpovídající prvek výchozího pole:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Výsledek provedení kódu:
[2, 4, 6, 8, 10]
Příklad
Vytvoříme pole, kde každý prvek získáme tak, že hodnotu prvku vynásobíme jeho pořadovým číslem v poli:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Výsledek provedení kódu:
[0, 2, 6, 12, 20]
Příklad
V případě potřeby lze do třetího parametru předat samotné pole:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
zde bude dostupné pole arr
});
Příklad
Metodu map lze použít i
pro průchod vícerozměrnými poli. Předpokládejme například,
že máme následující pole:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Projděme toto pole pomocí
map a vypišme jeho prvky do konzole:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
V důsledku toho console.log vypíše [1,
2, 3], poté [4, 5, 6], poté
[7, 8, 9].
Jak vidíte, do proměnné elem se dostávají
podpole. Nyní aplikujme metodu
map na každé podpole a umocněme
každý jeho prvek na druhou:
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);