Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.
Seit March 2025 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
Die flatMap()-Methode von Iterator-Instanzen gibt ein neues Iterator-Helfer-Objekt zurück, das jedes Element im ursprünglichen Iterator nimmt, es durch eine Mapping-Funktion laufen lässt und die von der Mapping-Funktion zurückgegebenen Elemente (die in einem anderen Iterator oder Iterable enthalten sind) liefert.
Eine Funktion, die für jedes durch den Iterator produzierte Element ausgeführt wird. Sie sollte einen Iterator oder ein Iterable zurückgeben, das Elemente liefert, die von flatMap() geliefert werden sollen. Beachten Sie, dass im Gegensatz zu Array.prototype.flatMap() keine einzelnen Nicht-Iterator/Iterable-Werte zurückgegeben werden können. Die Funktion wird mit den folgenden Argumenten aufgerufen:
elementDas aktuelle Element, das im Array verarbeitet wird.
indexDer Index des aktuellen Elements, das im Array verarbeitet wird.
Ein neues Iterator-Helfer-Objekt. Wenn zum ersten Mal die next()-Methode des Iterator-Helfers aufgerufen wird, wird callbackFn auf das erste Element angewendet, das durch den zugrunde liegenden Iterator produziert wird, und der Rückgabewert, der ein Iterator oder Iterable sein sollte, wird einzeln vom Iterator-Helfer geliefert (wie yield*). Das nächste Element wird aus dem zugrunde liegenden Iterator abgerufen, wenn das vorherige von callbackFn zurückgegebene Element abgeschlossen ist. Wenn der zugrunde liegende Iterator abgeschlossen ist, wird auch der Iterator-Helfer abgeschlossen (die next()-Methode produziert { value: undefined, done: true }).
Wird ausgelöst, wenn callbackFn einen Nicht-Iterator/Iterable-Wert oder einen String-Primitiv zurückgibt.
flatMap akzeptiert zwei Arten von Rückgabewerten von callbackFn: einen Iterator oder ein Iterable. Diese werden auf die gleiche Weise wie bei Iterator.from() behandelt: Wenn der Rückgabewert iterable ist, wird die Methode [Symbol.iterator]() aufgerufen und der Rückgabewert verwendet; andernfalls wird der Rückgabewert als Iterator behandelt und dessen next()-Methode aufgerufen.
Das folgende Beispiel führt zwei Map-Objekte zu einem zusammen:
Dies vermeidet die Erstellung temporärer Kopien des Inhalts der Map. Beachten Sie, dass das Array [map1, map2] zunächst in einen Iterator umgewandelt werden muss (mithilfe von Array.prototype.values()), da Array.prototype.flatMap() nur Arrays, nicht aber Iterables, flacht.
Strings sind iterierbar, aber flatMap() lehnt speziell String-Primitiven ab, die von callbackFn zurückgegeben werden. Dies liegt daran, dass das Iterieren über Codepunkte oft nicht das gewünschte Verhalten ist.
Sie möchten es stattdessen möglicherweise in einem Array verpacken, sodass der gesamte String als ein einzelnes Element geliefert wird:
Oder, wenn das Verhalten des Iterierens über Codepunkte beabsichtigt ist, können Sie Iterator.from() verwenden, um es in einen ordnungsgemäßen Iterator zu konvertieren:
| ECMAScript® 2027 Language Specification # sec-iterator.prototype.flatmap |
JavaScript aktivieren, um diese Browser-Kompatibilitätstabelle anzuzeigen.
Der Bauplan für ein besseres Internet.
Besuche die gemeinnützige Muttergesellschaft der Mozilla Corporation, die Mozilla Foundation.
Teile dieses Inhalts sind ©1998–2026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfügbar unter einer Creative-Commons-Lizenz.