JavaScript/Objekte/Map/clear
Mit der Methode clear
können alle Einträge einer Map auf einmal entfernt werden.
Syntax
Map.prototype.clear( )
Writable | true |
Enumerable | false |
Configurable | true |
Prototyp
Eigenschaften
Inhaltsverzeichnis
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.
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.
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.
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.
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
- MDN: Map.prototype.clear