JavaScript/Objekte/Map/clear

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

Mit der Methode clear können alle Einträge einer Map auf einmal entfernt werden.


Syntax

Map.prototype.clear( )


Attribute
Writable true
Enumerable false
Configurable true


Prototyp


Eigenschaften


Beschreibung

Die Methode clear erwartet keine Argumente und gibt grundsätzlich den Wert undefined zurück. Wird sie auf einer Map aufgerufen, dann werden alle in dieser Map enthaltenen Einträge entfernt.


Beispiel
const map = new Map( ).set(false, 0).set(true, 1);

map.clear( );

console.info(map.size); // 0


In diesem Beispiel wird zunächst eine Map erzeugt, welcher mit der Methode set zwei Einträge hinzugefügt werden. Danach wird auf der Map die Methode clear aufgerufen, was zur Folge hat, dass beide Einträge direkt wieder gelöscht werden, was die Ausgabe des Wertes der Eigenschaft size in der Konsole bestätigt.

Aufruf während der Iteration

Wird die Methode clear auf einer Map aufgerufen, über die gerade mit einem eingebauten Konstrukt wie etwa einer Schleife mit for und of iteriert wird, dann wird die Iteration durch diesen Aufruf beendet.


Beispiel
const map = new Map([
  ['one', 1],
  ['two', 2]
]);

for (let [key, value] of map) {
  console.log(key); // one
  map.clear( );
}


In diesem Beispiel wird für die Iteration der von der Methode entries erzeugte Iterator verwendet, da diese Methode die Standardschnittstelle für die Iteration von Maps darstellt. Der Aufruf von entries erfolgt hier also implizit. Wird nun im Schleifenkörper die Methode clear aufgerufen, dann werden alle Einträge aus der Map entfernt und der Iterator signalisiert der Schleife, dass keine weiteren Einträge auszugeben sind, die Iteration also beendet ist.


Beispiel
const map = new Map([
  [4, 'four'],
  [5, 'five']
]);

const iterator = map.values( );
console.log(iterator.next( ).done); // false

map.clear( );
console.log(iterator.next( ).done); // true


Die Information, dass keine weiteren Werte mehr auszugeben sind, wird dabei über die Eigenschaft done des Ereignisobjektes kommuniziert, welches von der Iteratormethode next zurückgegeben wird, die bei der Iteration implizit aufgerufen wird. Werden durch den Aufruf von clear alle Einträge aus der Map entfernt, dann wird beim nachfolgenden Aufruf der Methode next der Wert der Eigenschaft done auf true gesetzt.


Beispiel
const map = new Map([
  [7, 'seven'],
  [8, 'eight']
]);

map.forEach(function (value) {
  console.log(value); // seven
  map.clear( );
});


Wird unter Verwendung der Methode forEach über eine Map iteriert, dann verhält es sich genauso wie bei der Iteration mittels for und of, sprich, auch hier wird die Iteration durch den Aufruf der Methode clear beendet. Die als Argument an die Methode forEach übergebene Rückruffunktion wird für die aus der Map entfernten Einträge nicht mehr aufgerufen.

Spezifikation

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

Weblinks