Metoden map
Metoden map tillader at anvende en given
funktion for hvert element i et array. Metoden
ændrer ikke det oprindelige array, men
returnerer et modificeret et.
Metoden modtager en funktion som parameter, som
vil blive udført for hvert element i arrayet.
Hvad denne funktion returnerer via return
for arrayelementet, vil blive elementets nye værdi
(se eksempler).
Man kan overføre 3 parametre til
funktionen. Hvis disse parametre er til stede (de er ikke obligatoriske),
så vil den første automatisk modtage elementet
fra arrayet, den anden vil modtage dets nummer i arrayet
(index), og den tredje - selve arrayet.
Syntaks
let nytArray = array.map(function(element, index, array) {
kode
return modificeret element;
});
Eksempel
Lad os oprette et array, hvor hvert element er dobbelt så stort som det tilsvarende element i startarrayet:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Resultatet af udførelsen af koden:
[2, 4, 6, 8, 10]
Eksempel
Lad os oprette et array, hvor hvert element opnås sådan her - elementets værdi ganges med dets ordningsnummer i arrayet:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Resultatet af udførelsen af koden:
[0, 2, 6, 12, 20]
Eksempel
Hvis nødvendigt, kan selve arrayet overføres som den tredje parameter:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
// her vil arrayet arr være tilgængeligt
});
Eksempel
Metoden map kan også bruges til
at gennemgå multidimensionelle arrays. Lad os for eksempel sige,
at vi har følgende array:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Lad os gennemgå dette array med
map og udskrive dets elementer til konsollen:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Som et resultat vil console.log udskrive [1,
2, 3], derefter [4, 5, 6], og derefter
[7, 8, 9].
Som du kan se, er det underarrays, der går ind i variablen elem.
Lad os nu anvende metoden
map på hvert underarray og opløfte
hvert dets element i anden potens:
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);