Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Map.prototype.getOrInsertComputed()

Baseline 2026
Neu verfügbar

Seit Februar 2026 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 Methode getOrInsertComputed() von Map-Instanzen gibt den Wert zurück, der dem angegebenen Schlüssel in dieser Map zugeordnet ist. Ist der Schlüssel nicht vorhanden, fügt sie einen neuen Eintrag mit diesem Schlüssel und einem Standardwert hinzu, der durch eine übergebene Callback-Funktion berechnet wird, und gibt den eingefügten Wert zurück.

Verwenden Sie diese Methode anstelle von Map.prototype.getOrInsert(), wenn die Berechnung des Standardwerts aufwendig ist und Sie sie nur bei Bedarf durchführen möchten.

Probieren Sie es aus

const map = new Map([["bar", "foo"]]);
const defaultCreator = (key) => `default for ${key}`;

console.log(map.getOrInsertComputed("bar", defaultCreator));
// Expected output: "foo"

console.log(map.getOrInsertComputed("baz", defaultCreator));
// Expected output: "default for baz"

Syntax

js
getOrInsertComputed(key, callback)

Parameter

key

Der Schlüssel des Elements, das aus dem Map-Objekt zurückgegeben werden soll. Objektschlüssel werden anhand ihrer Referenz verglichen, nicht anhand ihres Werts.

callback

Eine Funktion, die den Wert zurückgibt, der eingefügt und zurückgegeben werden soll, wenn der Schlüssel noch nicht im Map-Objekt vorhanden ist. Die Funktion wird mit dem folgenden Argument aufgerufen:

key

Derselbe Schlüssel, der an getOrInsertComputed() übergeben wurde.

Rückgabewert

Der Wert, der dem angegebenen Schlüssel im Map-Objekt zugeordnet ist. Wird der Schlüssel nicht gefunden, wird das Ergebnis von callback(key) eingefügt und zurückgegeben.

Ausnahmen

TypeError

Wird ausgelöst, wenn callback nicht aufrufbar ist.

Beispiele

Unnötige Berechnung des Standardwerts vermeiden

Bei Verwendung von Map.prototype.getOrInsert() wird der Standardwert jedes Mal berechnet, auch wenn er nicht benötigt wird. Mit getOrInsertComputed() wird der Standardwert nur bei Bedarf berechnet.

js
const map = new Map([["bar", "foo"]]);
const defaultCreator = (key) => {
  console.log(`Creating default for ${key}`);
  return `default for ${key}`;
};

map.getOrInsert("bar", defaultCreator("bar")); // Logs "Creating default for bar"
map.getOrInsertComputed("bar", defaultCreator); // No log

Spezifikationen

Spezifikation
ECMAScript® 2027 Language Specification
# sec-map.prototype.getorinsertcomputed

Browser-Kompatibilität

Siehe auch