Metoda map() tworzy nową tablicę z wynikami wywołanej funkcji dla każdego elementu w tablicy.
Składnia
arr.map(callback[, thisArg])
Parametry
callback- Funkcja tworząca element nowej tablicy z jednego z bieżących elementów.
currentValue
index
array thisArg- Opcjonalnie. Obiekt do użycia jako
this, kiedy wykonujemycallback.
Zwracana wartość
Nowa tablica.
Opis
map wykonuje funkcję (callback) na każdym z elementów tablicy. Tablica traktowana jest jako "zwarte" - czyli callback zostanie wywołane dla każdego elementu o indeksie mniejszym niż długość tablicy, nawet jeśli poszczególne indeksy nie zostały wcześniej zadeklarowane.
callback wywoływana jest z trzema argumentami: wartością elementu, jego indeksem i tablicą która jest trawersowana.
W przypadku podania argumentu thisObject, zostanie on przekazany jako this przy każdym wywołaniu callback. Gdy go brak, lub ma wartość null, użyty zostanie obiekt globalny przyporządkowany do callback.
map nie modyfikuje tablicy, na której jest wywołany.
Zakres elementów przetwarzanych przez map ustalany jest przed pierwszym wywołaniem callback. Elementy dodane do tablicy po wywołaniu map nie zostaną odwiedzone przez callback. Jeśli istniejący, element tablicy zostanie zmieniony lub usunięty, wartością przekazaną do callback będzie wartość z momentu w którym map odwiedza dany element; elementy usunięte przed sprawdzeniem będą przekazane jako undefined.
Przykłady
Wielkie litery łańcuchów w tablicy
Poniższy kod tworzy nową tablicę zawierającą pisaną wielkimi literami wersję wszystkich oryginalnych łańcuchów.
var strings = ["hello", "Array", "WORLD"];
function makeUpperCase(v)
{
return v.toUpperCase();
}
var uppers = strings.map(makeUpperCase);
// uppers są teraz pisane wielkimi literami ["HELLO", "ARRAY", "WORLD"]
// strings są niezmienione
Mapowanie tablicy liczb do tablicy pierwiastków kwadratowych
Poniższy kod pobiera tablicę liczb i tworzy nową tablicę z pierwiastkami kwadratowymi liczb z pierwszej tablicy.
var liczby = [1, 4, 9]; var pierwiastki = liczby.map(Math.sqrt); // otrzymane pierwiastki [1, 2, 3] // pozostające nadal liczby [1, 4, 9]