Die map-Methode
Die Methode map ermöglicht es, eine gegebene
Funktion auf jedes Element eines Arrays anzuwenden. Dabei
verändert die Methode nicht das ursprüngliche Array, sondern
gibt ein verändertes Array zurück.
Die Methode erhält als Parameter eine Funktion, die
für jedes Element des Arrays ausgeführt wird.
Das, was diese Funktion via return
für das Array-Element zurückgibt, wird zum neuen Wert
dieses Elements (siehe Beispiele).
An die Funktion können 3 Parameter übergeben werden.
Falls diese Parameter vorhanden sind (sie sind nicht verpflichtend),
wird automatisch im ersten das Element des Arrays übergeben,
im zweiten seine Position im Array (Index), und im dritten das Array selbst.
Syntax
let neuesArray = array.map(function(Element, Index, Array) {
Code
return verändertesElement;
});
Beispiel
Erstellen wir ein Array, bei dem jedes Element doppelt so groß ist wie das entsprechende Element des Ausgangsarrays:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem) {
return elem * 2;
});
console.log(res);
Ergebnis der Codeausführung:
[2, 4, 6, 8, 10]
Beispiel
Erstellen wir ein Array, bei dem jedes Element so entsteht - der Wert des Elements wird mit seiner Positionsnummer im Array multipliziert:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index) {
return elem * index;
});
console.log(res);
Ergebnis der Codeausführung:
[0, 2, 6, 12, 20]
Beispiel
Bei Bedarf kann im dritten Parameter das Array selbst übergeben werden:
let arr = [1, 2, 3, 4, 5];
let res = arr.map(function(elem, index, arr) {
hier ist das Array arr verfügbar
});
Beispiel
Die Methode map kann auch zum
Durchlaufen mehrdimensionaler Arrays verwendet werden. Nehmen wir zum Beispiel an,
es gibt das folgende Array:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
Lassen Sie uns dieses Array mit
map durchlaufen und seine Elemente in der Konsole ausgeben:
let arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
let result = arr.map(function(elem) {
console.log(elem);
});
Als Ergebnis gibt console.log [1,
2, 3] aus, dann [4, 5, 6], dann
[7, 8, 9].
Wie Sie sehen, werden die Sub-Arrays in die Variable elem übergeben.
Wenden wir nun die Methode
map auf jedes Sub-Array an und quadrieren
jedes seiner Elemente:
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);
Siehe auch
-
die Methode
forEach,
die eine Funktion für jedes Element eines Arrays anwendet -
die Methode
filter,
die das Filtern von Array-Elementen ermöglicht -
die Methoden
someundevery,
die eine Überprüfung des Arrays durchführen -
die Methoden
reduceundreduceRight,
die ein Array auf einen einzelnen Wert reduzieren