Dies ist nur eine Spielwiese.
Das echte SELFHTML-Wiki gibt es unter https://wiki.selfhtml.org.

JavaScript/Objekte/Array/map

SELFHTML e.V.
Wechseln zu: Navigation, Suche

Die von Array.prototype vererbte Methode map ruft für jedes Element des iterierbaren Objektes auf dem sie aufgerufen wurde die als Argument übergebene Rückruffunktion auf und erzeugt ein Array, dessen Elemente die von der Funktion zurückgegebenen Werte sind.



Syntax

Array.prototype.map(callback[, thisArg])


Attribute
Writable true
Enumerable false
Configurable true


Prototyp


Die an map übergebene Callback-Funktion nimmt als ersten Parameter den aktuellen Wert des Arrays entgegen und ihr Rückgabewert wird dem neuen Array hinzugefügt.

Beispiel

Der Inhalt enthält ein Gleichheitszeichen, das den Parser durcheinanderbringt. Bitte ein 1= am Anfang einfügen: {{BeispielCode|1= ...}}
(Es kann aber auch sein, dass kein Inhalt vorhanden ist.)

Im Beispiel wird eine Funktion anzahlBuchstaben definiert, welche die Länge des ihr übergebenen Objekts zurückgibt. Sie überprüft aus Gründen der Einfachheit für dieses Beispiel nicht, ob sie auch tatsächlich ein String-Objekt erhalten hat, von dem sie nun die Anzahl der Zeichen zurück geben soll.

Des Weiteren wird das Array array1 mit drei String-Werten gefüllt, damit darauf beispielhaft die map-Methode angewendet werden kann. Diese nimmt die Referenz auf die Funktion anzahlBuchstaben als ersten Parameter entgegen, um sie nun auf jedes Element von array1 anzuwenden. Das Ergebnis wird jeweils in einem neuen Array gespeichert. Der Rückgabewert der map-Methode, also das neue Array mit den Wortlängen, wird nun in der Variable array2 gespeichert.

Natürlich kann man dieses Beispiel wegen seiner Einfachheit auch gleich als Einzeiler schreiben:

Beispiel

Der Inhalt enthält ein Gleichheitszeichen, das den Parser durcheinanderbringt. Bitte ein 1= am Anfang einfügen: {{BeispielCode|1= ...}}
(Es kann aber auch sein, dass kein Inhalt vorhanden ist.)

Beachten Sie: Die map-Methode in Verbindung mit der Callback-Funktion leistet das, was man auch mittels einer Schleife erreichen kann:
Beispiel

Der Inhalt enthält ein Gleichheitszeichen, das den Parser durcheinanderbringt. Bitte ein 1= am Anfang einfügen: {{BeispielCode|1= ...}}
(Es kann aber auch sein, dass kein Inhalt vorhanden ist.)

Das Verwenden der map-Methode hat jedoch den Vorteil, dass man keine Zählvariable i benötigt, und dass der Programm-Code leichter lesbar ist.

Mehr zu Callback-Funktionen finden Sie unter Umgang mit Callback-Funktionen.

Die Callback-Funktion

Der erste Parameter der map-Methode eines Arrays ist eine Funktion, die bis zu drei Parameter entgegennehmen kann:

Beispiel
<syntaxhighlight lang="javascript">function cb (currentValue, index, originalArray) { ... });</source >

Innerhalb der Callback-Funktion hat man also die Möglichkeit, das ursprüngliche Array zu untersuchen (3. Parameter originalArray), als auch die Information, das wievielte Element gerade übermittelt wurde (2. Parameter index), dessen Wert in currentValue steht.

Der optionale Kontext-Parameter

Wenn innerhalb der Callback-Funktion das Schlüsselwort this nicht auf das globale window-Objekt verweisen soll, dann kann mit diesem zweiten Parameter im map-Aufruf eine Referenz auf ein Objekt übertragen werden, welches stattdessen innerhalb der Callback-Funktion für this gelten soll.



Siehe auch

Weblinks

ECMAScript 2017 (7th Edition, ECMA-262 Draft): Array.prototype.map

ECMAScript 2015 (6th Edition, ECMA-262): Array.prototype.map

MDN: Array.prototype.map