Iterator.prototype.every()
Baseline 2025Newly available
Since March 2025, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.
Die every()
Methode von Iterator
Instanzen ist ähnlich wie Array.prototype.every()
: Sie prüft, ob alle vom Iterator erzeugten Elemente den Test bestehen, der von der bereitgestellten Funktion implementiert wurde. Sie gibt einen booleschen Wert zurück.
Syntax
every(callbackFn)
Parameter
callbackFn
-
Eine Funktion, die für jedes vom Iterator erzeugte Element ausgeführt wird. Sie sollte einen truthy Wert zurückgeben, um anzuzeigen, dass das Element den Test besteht, und einen falsy Wert andernfalls. Die Funktion wird mit den folgenden Argumenten aufgerufen:
Rückgabewert
true
, wenn callbackFn
für jedes Element einen truthy Wert zurückgibt. Andernfalls false
.
Beschreibung
every()
iteriert den Iterator und ruft die callbackFn
Funktion einmal für jedes Element auf. Es gibt sofort false
zurück, wenn die Callback-Funktion einen falsy Wert zurückgibt. Andernfalls wird bis zum Ende des Iterators iteriert und true
zurückgegeben. Wenn every()
false
zurückgibt, wird der zugrunde liegende Iterator durch Aufrufen seiner return()
Methode geschlossen.
Der Hauptvorteil von Iterator-Helpers gegenüber Array-Methoden ist, dass sie faul sind, was bedeutet, dass sie nur den nächsten Wert erzeugen, wenn dies angefordert wird. Dies vermeidet unnötige Berechnungen und ermöglicht es ihnen auch, mit unendlichen Iteratoren verwendet zu werden. Bei unendlichen Iteratoren gibt every()
false
zurück, sobald der erste falsy Wert gefunden wird. Wenn callbackFn
immer einen truthy Wert zurückgibt, wird die Methode nie zurückkehren.
Beispiele
Verwendung von every()
function* fibonacci() {
let current = 1;
let next = 1;
while (true) {
yield current;
[current, next] = [next, current + next];
}
}
const isEven = (x) => x % 2 === 0;
console.log(fibonacci().every(isEven)); // false
const isPositive = (x) => x > 0;
console.log(fibonacci().take(10).every(isPositive)); // true
console.log(fibonacci().every(isPositive)); // Never completes
Der Aufruf von every()
schließt immer den zugrunde liegenden Iterator, selbst wenn die Methode frühzeitig zurückkehrt. Der Iterator wird nie in einem halbfertigen Zustand belassen.
const seq = fibonacci();
console.log(seq.every(isEven)); // false
console.log(seq.next()); // { value: undefined, done: true }
Spezifikationen
Specification |
---|
Iterator Helpers # sec-iteratorprototype.every |