So verwenden Sie JavaScript Maps – .map()

JavaScript Maps – .map(): Funktion, Beispiele und bewährte Praktiken

Einleitung

In JavaScript ist eine Map eine Datenstruktur, die zur Speicherung von Schlüssel-Wert-Paaren verwendet wird. Im Gegensatz zu Objekten, die Zeichenfolgen als Schlüssel verwenden, können Maps eine beliebige Art von Datenwert als Schlüssel verwenden.

Die .map()-Funktion ist eine praktische Methode in JavaScript, mit der eine neue Map aus einer vorhandenen erstellt werden kann. Sie nimmt eine Rückruffunktion als Argument, die auf jedes Element der ursprünglichen Map angewendet wird und das Ergebnis in der neuen Map speichert.

Funktionsweise von .map()

Die Syntax von .map() ist:

javascript
newMap = originalMap.map((value, key) => callback(value, key));

* newMap: Die neue Map, die erstellt wird.
* originalMap: Die ursprüngliche Map, aus der die neue Map erstellt wird.
* callback: Eine Rückruffunktion, die auf jedes Element der ursprünglichen Map angewendet wird. Sie nimmt zwei Argumente entgegen: den Wert des Elements und den Schlüssel des Elements.
* value: Der Wert des Elements in der ursprünglichen Map.
* key: Der Schlüssel des Elements in der ursprünglichen Map.

Die Rückruffunktion muss ein Objekt zurückgeben, das den Schlüssel und den Wert des neuen Elements in der neuen Map angibt. Wenn die Rückruffunktion kein Objekt zurückgibt, wird das Element nicht in die neue Map eingefügt.

  So ändern Sie die Seitenausrichtung für eine einzelne Seite in MS Word

Vorteile von .map()

Die Verwendung von .map() bietet mehrere Vorteile gegenüber der manuellen Erstellung einer neuen Map:

* Vereinfachung des Codes: .map() ermöglicht die effiziente Transformation einer Map mit einer einzigen Zeile Code.
* Erhöhte Lesbarkeit: Die Verwendung von .map() macht den Code leichter verständlich, da er die Logik der Transformation in eine separate Rückruffunktion kapselt.
* Funktionalität höherer Ordnung: .map() ist eine Funktion höherer Ordnung, d. h. sie nimmt eine andere Funktion als Argument entgegen, wodurch eine flexiblere und wiederverwendbare Codebasis ermöglicht wird.

Anwendungsfälle

.map() findet Anwendung in verschiedenen Szenarien:

* Transformation von Werten: Transformation der Werte in einer Map in ein anderes Format oder einen anderen Datentyp.
* Filterung von Elementen: Extrahieren von Elementen aus einer Map, die bestimmten Kriterien entsprechen.
* Erstellung neuer Maps: Erstellen neuer Maps aus bestehenden Maps mit unterschiedlichen Schlüssel-Wert-Paaren.

Bewährte Praktiken

Bei der Verwendung von .map() sollten einige bewährte Praktiken beachtet werden:

* Rückgabe eines Objekts: Stellen Sie sicher, dass die Rückruffunktion immer ein Objekt zurückgibt, das den Schlüssel und den Wert des neuen Elements angibt. Andernfalls wird das Element nicht in die neue Map eingefügt.
* Vermeidung von Seiteneffekten: Vermeiden Sie Seiteneffekte in der Rückruffunktion, z. B. das Ändern der ursprünglichen Map.
* Verwendung einer for-of-Schleife: Erwägen Sie die Verwendung einer for-of-Schleife anstelle von .map(), wenn Sie auf die Reihenfolge der Elemente in der neuen Map keinen Wert legen.

  7 gute Ressourcen zum Erlernen der englischen Gebärdensprache

Beispiele

Transformation von Werten:

javascript
const originalMap = new Map([
['name', 'John'],
['age', 30],
]);

const newMap = originalMap.map((value) => value.toUpperCase());

console.log(newMap);
// Ergebnis: Map { 'name' => 'JOHN', 'age' => '30' }

Filterung von Elementen:

javascript
const originalMap = new Map([
['name', 'John'],
['age', 30],
['isStudent', true],
]);

const newMap = originalMap.map((value, key) => {
if (key === 'name' || key === 'age') {
return { key, value };
}
});

console.log(newMap);
// Ergebnis: Map { 'name' => 'John', 'age' => 30 }

Erstellung neuer Maps:

javascript
const originalMap = new Map([
['name', 'John'],
['age', 30],
]);

const newMap = originalMap.map((value, key) => ({
[key]: value.length,
}));

console.log(newMap);
// Ergebnis: Map { 'name' => 4, 'age' => 2 }

Fazit

Die .map()-Funktion in JavaScript ist eine leistungsstarke Methode, die die Transformation und Manipulation von Maps vereinfacht. Durch das Kapseln der Transformationslogik in eine Rückruffunktion bietet sie eine übersichtliche und wiederverwendbare Lösung für verschiedene Anwendungsfälle. Die Beachtung bewährter Praktiken gewährleistet eine effektive und zuverlässige Verwendung von .map().

Häufig gestellte Fragen (FAQs)

1. Was ist der Unterschied zwischen .map() und Object.keys()?
* .map() transformiert jeden Wert in der Map, während Object.keys() ein Array mit den Schlüsseln der Map zurückgibt.
2. Kann ich .map() verwenden, um eine neue Map mit unterschiedlichen Schlüsseln zu erstellen?
* Ja, Sie können die Rückruffunktion verwenden, um die Schlüssel und Werte der neuen Elemente festzulegen.
3. Kann ich mehrere Rückruffunktionen in .map() verwenden?
* Ja, Sie können mehrere Rückruffunktionen in einer Array.from()-Schleife verwenden, um eine neue Map zu erstellen.
4. Gibt .map() die ursprüngliche Map zurück?
* Nein, .map() gibt eine neue Map mit den transformierten Elementen zurück.
5. Kann ich .map() verwenden, um eine flache Map zu erstellen?
* Ja, Sie können eine flache Map erstellen, indem Sie die Rückruffunktion ({ key: key, value: value }) verwenden.
6. Gibt es Alternativen zu .map() zur Transformation von Maps?
* Ja, Sie können Array.from() und Object.entries() verwenden, um Maps zu transformieren.
7. Kann ich asynchrone Operationen in der Rückruffunktion von .map() verwenden?
* Ja, Sie können async/await verwenden, um asynchrone Operationen in der Rückruffunktion auszuführen.
8. Kann ich .map() verwenden, um Maps mit benutzerdefinierten Objekten als Schlüssel zu transformieren?
* Ja, Sie können benutzerdefinierte Objekte als Schlüssel verwenden, solange sie über eine eindeutige toString()-Methode verfügen.