[ Leksykon ] [ JavaScript ] [ Tablice ] [ Metody ] [ Właściwości ] [ Array() ]
Array.prototype.map()
[_] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z]
Przykłady:
const tablica = [5, 10, 15, 20];
const mapa = tablica.map((x) => x + 2);
console.log(mapa);
// > Array [7, 12, 17, 22]
const tablica = [1, 4, 9, 16];
const wynik = tablica.map((a) => Math.sqrt(a));
console.log(wynik);
// Array [1, 2, 3, 4]
const tablica = [
{ klucz: 1, wartosc: 5 },
{ klucz: 2, wartosc: 10 },
{ klucz: 3, wartosc: 15 },
];
const wynik = tablica.map(({ klucz, wartosc }) => ({ [klucz]: wartosc }));
console.log(wynik); // Array [Object { 1: 5 }, Object { 2: 10 }, Object { 3: 15 }]
console.log(tablica);
// Array [
// Object { klucz: 1, wartosc: 5 },
// Object { klucz: 2, wartosc: 10 },
// Object { klucz: 3, wartosc: 15 }
// ]
const tablicaOb = {
length: 4,
0: 5,
1: 10,
2: 15,
3: 20,
};
console.log(Array.prototype.map.call(tablicaOb, (x) => x * 2));
// Array [10, 20, 30, 40]
const elemty = document.querySelectorAll("a");
const wartosc = Array.prototype.map.call(elemty, ({ value }) => value);
const obrazy = document.querySelectorAll("img");
const dane = Array.from(obrazy, (foto) => foto.src);
const wynik = dane.filter((link) => link.startsWith("http://"));
console.log(
[0, 1, 2, , 4, 5].map((x, i) => {
console.log(`wartosc: ${i}`);
return x * 2;
}),
);
const tablica = ["0", "1", "2.5", "3", "4", "5e10"];
console.log(tablica.map(parseInt));
// Array [0, NaN, NaN, NaN, NaN, NaN]
console.log(tablica.map((str) => parseInt(str)));
// Array [0, 1, 2, 3, 4, 5]
console.log(tablica.map(Number));
// Array [0, 1, 2.5, 3, 4, 50000000000]
const tablica = ["0", "1", "2.5", "3", "4", "5e10"];
const wynik = tablica.map((a, index) => {
if (index <= 4) {
return a;
}
});
console.log(wynik);
// Array ["0", "1", "2.5", "3", "4", undefined]
Opis:
Metoda Array.map() tworzy nową tablicę wypełnioną wynikami wywołania podanej funkcji dla każdego elementu w tablicy wywołującej map(). Pierwszy parametr Funkcja do wykonania dla każdego elementu w tablicy. Jego wartość zwracana jest dodawana jako pojedynczy element w nowej tablicy. Funkcja jest wywoływana z następującymi argumentami: Pierwszy argument bieżący element przetwarzany w tablicy, drugi argument indeks bieżącego elementu przetwarzanego w tablicy, trzeci argument tablica map() została wywołana. Drugi parametr opcjonalny wartość, która ma być używana this podczas wykonywania funkcji jako pierwszy parametr. Zwracana wartość nowa tablica, w której każdy element jest wynikiem funkcji wywołania zwrotnego. Wywołuje podaną funkcję raz dla każdego elementu w tablicy i konstruuje nową tablicę z wyników. Funkcja jest wywoływana tylko dla indeksów tablicy, które mają przypisane wartości. Nie jest wywoływana dla pustych gniazd. Metoda map() jest metodą kopiowania. To się nie zmienia this. Jednak funkcja podana może zmutować tablicę. Należy jednak pamiętać, że długość tablicy jest zapisywana przed pierwszym wywołaniem funkcji. Funkcja nie odwiedzi żadnych elementów dodanych poza początkową długością tablicy, gdy rozpoczęło się wywołanie map(). Zmiany w już odwiedzonych indeksach nie powodują ponownego wywołania na nich funkcji. Jeśli istniejący, jeszcze nieodwiedzony element tablicy zostanie zmieniony przez funkcję, jego wartość przekazana do funkcji będzie wartością w momencie, gdy ten element zostanie odwiedzony. Usunięte elementy nie są odwiedzane. Ponieważ map() buduje nową tablicę, wywołanie jej bez użycia zwróconej tablicy jest antywzorcem, użyj forEach lub for...of zamiast tego..
Zobacz też:
Array.forEach() -
for...of -
Array.from() -