De map methode
De methode map maakt het mogelijk om een opgegeven
functie toe te passen op elk element van een array. De
methode wijzigt de oorspronkelijke array niet, maar
retourneert een gewijzigde array.
De methode ontvangt als parameter een functie die
wordt uitgevoerd voor elk element van de array.
Wat deze functie retourneert via return
voor het array-element, wordt de nieuwe waarde
van dat element (zie voorbeelden).
Er kunnen 3 parameters aan de functie worden doorgegeven.
Als deze parameters aanwezig zijn (ze zijn niet verplicht),
dan komt het array-element automatisch in de eerste,
zijn volgnummer in de array (index) in de tweede,
en de array zelf in de derde.
Syntaxis
let nieuweArray = array.map(function(element, index, array) {
code
return gewijzigdElement;
});
Voorbeeld
Laten we een array maken waarvan elk element tweemaal zo groot is als het corresponderende element van de beginarray:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Resultaat van de code-uitvoering:
[2, 4, 6, 8, 10]
Voorbeeld
Laten we een array maken waarvan elk element als volgt wordt verkregen - de waarde van het element wordt vermenigvuldigd met zijn volgnummer in de array:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Resultaat van de code-uitvoering:
[0, 2, 6, 12, 20]
Voorbeeld
Indien nodig kan de array zelf als derde parameter worden doorgegeven:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
hier is de array arr beschikbaar
});
Voorbeeld
De methode map kan ook worden gebruikt voor
het doorlopen van multidimensionale arrays. Stel, bijvoorbeeld,
dat we de volgende array hebben:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Laten we deze array doorlopen met
map en zijn elementen naar de console loggen:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Als resultaat zal console.log achtereenvolgens [1,
2, 3], dan [4, 5, 6], en dan
[7, 8, 9] uitvoeren.
Zoals je ziet, komen de subarrays in de variabele
elem terecht. Laten we nu de methode
map toepassen op elke subarray en
elk element ervan kwadrateren:
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);