Metoda map
Metoda map lejon që të aplikosh një funksion të caktuar
për secilin element të vargut. Duke
e bërë këtë, metoda nuk e ndryshon vargun origjinal, por
kthen një të ndryshuar.
Metoda merr si parametër një funksion, i cili
do të ekzekutohet për secilin element të vargut.
Ajo që kthen ky funksion përmes return
për elementin e vargut, do të bëhet vlera e re
e atij elementi (shih shembujt).
Në funksion mund të kaloni 3 parametra.
Nëse këta parametra ekzistojnë (ata nuk janë të detyrueshëm),
atëherë në të parën automatikisht do të futet elementi
i vargut, në të dytën do të futet numri i tij në varg
(indeksi), dhe në të tretën - vetë vargu.
Sintaksa
let varg_i_ri = varg.map(function(element, indeks, varg) {
kod
return elementi_i_ndryshuar;
});
Shembull
Le të krijojmë një varg, ku secili element i tij është dy herë më i madh se elementi përkatës i vargut fillestar:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Rezultati i ekzekutimit të kodit:
[2, 4, 6, 8, 10]
Shembull
Le të krijojmë një varg, ku secili element i tij merret kështu - vlera e elementit shumëzohet me numrin e tij rendor në varg:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Rezultati i ekzekutimit të kodit:
[0, 2, 6, 12, 20]
Shembull
Nëse është e nevojshme, në parametrin e tretë mund të kalohet vetë vargu:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
këtu do të jetë i disponueshëm vargu arr
});
Shembull
Metoda map mund të përdoret gjithashtu për
kalimin nëpër vargje shumëdimensionale. Le të themi, për shembull,
është dhënë ky varg:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Le ta kalojmë këtë varg përmes
map dhe t'i shfaqim elementet e tij në konsol:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Si rezultat, console.log do të shfaqë [1,
2, 3], pastaj [4, 5, 6], pastaj
[7, 8, 9].
Siç e shihni, në variablin elem hyjnë
nënvargjet. Le të aplikojmë tani metodën
map për çdo nënvarg dhe ta ngremë
çdo element të tij në katror:
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);