JavaScript/Objekte/Map/delete
Mit der Methode delete
kann ein einzelner Eintrag aus einer Map entfernt werden.
Syntax
Map.prototype.delete(key)
Writable | true |
Enumerable | false |
Configurable | true |
Prototyp
Eigenschaften
Inhaltsverzeichnis
Beschreibung
Mittels delete können einzelne Einträge aus einer Map entfernt werden. Die Methode erwartet als Parameter den Schlüssel des zu löschenden Eintrags und gibt entweder true oder false zurück, je nach dem, ob es in der Map einen Eintrag für den angegebenen Schlüssel gab der gelöscht werden konnte oder nicht.
const map = new Map([
['key', 'value']
]);
const result = map.delete('key');
console.info(result); // true
In diesem Beispiel wird zunächst eine Map erstellt und mit einem Eintrag initialisiert. Danach wird auf dieser Map die Methode delete aufgerufen, wobei der zuvor für den Eintrag bestimmte Schlüssel als Argument übergeben und der Rückgabewert einer Konstante zugewiesen wird. Wie die abschließende Ausgabe des von delete zurückgegebenen Wertes in der Konsole zeigt, wurde der Eintrag erfolgreich aus der Map entfernt.
Verhalten
Anders als bei der Verwendung des Operators delete, der genutzt werden kann um Eigenschaften von Objekten zu löschen, also zum Beispiel auch Elemente aus einem Array, entsteht bei der Verwendung der Methode delete keine Lücke in der internen Liste der Einträge der Map.
const list = [1, 2, 3];
delete list[1];
for (let value of list) {
console.log(value); // 1, undefined, 3
}
Wird mit dem Operator delete ein Element aus einem Array gelöscht, dann rücken die nachfolgenden Elemente nicht automatisch nach, sodass an der Indexposition des gelöschten Elementes eine Lücke entsteht. Aus diesem Grund sollte für die Entfernung eines Elementes aus einem Array auch besser die Methode splice verwendet werden.
const map = new Map([
[1, 'alpha'],
[2, 'beta' ],
[3, 'gamma']
]);
map.delete(2);
for (let value of map.values( )) {
console.log(value); // alpha, gamma
}
Da die Einträge einer Map jedoch nicht als Objekteigenschaften vorliegen, sondern auf einer internen Liste operiert wird, wird automatisch dafür gesorgt, dass durch den Aufruf der Methode delete keine Lücke entsteht.
Spezifikation
Map.prototype.delete | ECMAScript 2015 | ECMAScript 2016 | ECMAScript 2017 Draft |
Weblinks
- MDN: Map.prototype.delete