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.getOrInsert()

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 getOrInsert() 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 dem Schlüssel und einem angegebenen Standardwert ein und gibt den eingefügten Wert zurück.

Wenn die Berechnung des Standardwerts aufwendig ist, verwenden Sie stattdessen Map.prototype.getOrInsertComputed(). Diese Methode erwartet eine Callback-Funktion, die den Standardwert nur dann berechnet, wenn er tatsächlich benötigt wird.

Probieren Sie es aus

const map = new Map([["bar", "foo"]]);
console.log(map.getOrInsert("bar", "default"));
// Expected output: "foo"

console.log(map.getOrInsert("baz", "default"));
// Expected output: "default"

Syntax

js
getOrInsert(key, defaultValue)

Parameter

key

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

defaultValue

Der Wert, der eingefügt und zurückgegeben wird, wenn der Schlüssel im Map-Objekt noch nicht vorhanden ist.

Rückgabewert

Der Wert, der dem angegebenen Schlüssel im Map-Objekt zugeordnet ist. Wenn der Schlüssel nicht gefunden wird, wird defaultValue eingefügt und zurückgegeben.

Beschreibung

Die Methode getOrInsert() entspricht Folgendem:

js
if (map.has(key)) {
  return map.get(key);
}
map.set(key, defaultValue);
return defaultValue;

Sie ähnelt auch dem folgenden Muster (das etwas weniger zuverlässig ist, wenn null oder undefined gültige Werte in Ihrer Map sind):

js
map.set(key, map.get(key) ?? defaultValue);

Beispiele

Multimap

In einer Map, in der jedem Schlüssel ein Array von Werten zugeordnet ist, können Sie mit getOrInsert() sicherstellen, dass das Array für einen bestimmten Schlüssel existiert, bevor Sie ihm einen neuen Wert hinzufügen.

js
map.getOrInsert(key, []).push(value);

Standardwerte anwenden

Mit getOrInsert() können Sie sicherstellen, dass ein Schlüssel in einer Map vorhanden ist, auch wenn Sie seinen Wert derzeit nicht benötigen. Dies dient üblicherweise dazu, Benutzereingaben zu normalisieren.

Angenommen, Sie haben eine Map mit Benutzereinstellungen und möchten sicherstellen, dass eine bestimmte Einstellung immer einen Standardwert erhält, wenn der Benutzer sie nicht festgelegt hat:

js
const options = readConfig();
options.getOrInsert("theme", "light");
options.getOrInsert("fontSize", 14);

// Later in your code, you can safely assume these options exist
document.body.dataset.theme = options.get("theme");

Spezifikationen

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

Browser-Kompatibilität

Siehe auch