Iterator.prototype.every()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die every()
Methode von Iterator
Instanzen ähnelt Array.prototype.every()
: Sie prüft, ob alle vom Iterator erzeugten Elemente den Test bestehen, der von der bereitgestellten Funktion implementiert wird. Sie gibt einen booleschen Wert zurück.
Syntax
every(callbackFn)
Parameter
callbackFn
-
Eine Funktion, die für jedes vom Iterator erzeugte Element ausgeführt werden soll. 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()
durchläuft den Iterator und ruft die callbackFn
Funktion einmal für jedes Element auf. Es gibt false
sofort zurück, wenn die Callback-Funktion einen falsy Wert zurückgibt. Andernfalls iteriert es bis zum Ende des Iterators und gibt true
zurück. Wenn every()
false
zurückgibt, wird der zugrunde liegende Iterator durch Aufruf seiner return()
Methode geschlossen.
Der Hauptvorteil von Iterator-Hilfsfunktionen gegenüber Array-Methoden ist ihre Fähigkeit, mit unendlichen Iteratoren zu arbeiten. Bei unendlichen Iteratoren gibt every()
false
zurück, sobald der erste falsy Wert gefunden wird. Wenn callbackFn
immer einen truthy Wert zurückgibt, gibt die Methode niemals zurück.
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, auch wenn die Methode frühzeitig zurückkehrt. Der Iterator wird niemals in einem halbwegs 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 |
Browser-Kompatibilität
BCD tables only load in the browser