0 Tage Serie
javascript / intermediate
Snippet

Implementierung benutzerdefinierter Iteratoren

Durch die Implementierung der Symbol.iterator-Methode wird ein Objekt 'iterierbar', wodurch es in for...of-Schleifen und mit dem Spread-Operator verwendet werden kann. Die Methode muss ein Objekt mit einer next()-Funktion zurückgeben.

snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
const countdown = {
from: 5,
[Symbol.iterator]() {
let current = this.from;
return {
next() {
return current >= 0
? { value: current--, done: false }
: { done: true };
}
};
}
};
for (const num of countdown) {
console.log(num); // 5, 4, 3, 2, 1, 0
}
Erklärung
1
[Symbol.iterator]() { ... }
Ein spezielles integriertes Symbol, das den Standard-Iterator für ein Objekt definiert.
2
next() { ... }
Die Funktion, die vom Iterator aufgerufen wird, um das nächste Element in der Sequenz abzurufen.