JavaScript/Objekte/Map/delete

Aus SELFHTML-Wiki
< JavaScript‎ | Objekte‎ | Map
Wechseln zu: Navigation, Suche

Mit der Methode delete kann ein einzelner Eintrag aus einer Map entfernt werden.


Syntax

Map.prototype.delete(key)


Attribute
Writable true
Enumerable false
Configurable true


Prototyp


Eigenschaften


Beschreibung[Bearbeiten]

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.


Beispiel
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[Bearbeiten]

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.


Beispiel
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.


Beispiel
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.

Eigene Eigenschaften[Bearbeiten]

Die Methode delete besitzt zwei eigene Eigenschaften mit den Namen length und name. Der Wert der Eigenschaft length ist Eins, da die Methode über einen formalen Parameter verfügt. Die Eigenschaft name gibt den Namen der Methode zurück, also die Zeichenkette delete.


Beispiel
const method = Map.prototype.delete;

if (method.length) {
  console.info(method.name); // delete
}


Beide Eigenschaften sind nicht aufzählbar und schreibgeschützt. Der Wert des Attributes configurable ist jedoch true, weshalb sie durch Eigenschaftsdefinition verändert werden können.

Spezifikation[Bearbeiten]

Map.prototype.delete ECMAScript 2015 ECMAScript 2016 ECMAScript 2017 Draft

Weblinks[Bearbeiten]