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 ist ähnlich der Array.prototype.every(): Sie testet, ob alle vom Iterator erzeugten Elemente den Test bestehen, der von der bereitgestellten Funktion implementiert wurde. Sie gibt einen booleschen Wert zurück.

Syntax

js
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:

element

Das aktuelle Element, das verarbeitet wird.

index

Der Index des aktuellen Elements, das verarbeitet wird.

Rückgabewert

true, wenn callbackFn einen truthy Wert für jedes Element zurückgibt. Andernfalls false.

Beschreibung

every() iteriert den Iterator und ruft die Funktion callbackFn einmal für jedes Element auf. Es gibt sofort false zurück, wenn die Rückruffunktion einen falsy Wert zurückgibt. Andernfalls iteriert es bis zum Ende des Iterators und gibt true zurück. Wenn every() falsezurückgibt, wird der zugrunde liegende Iterator durch den Aufruf seiner Methodereturn()` geschlossen.

Der Hauptvorteil der Iterator-Hilfsfunktionen gegenüber Array-Methoden ist, dass sie faul sind, was bedeutet, dass sie den nächsten Wert nur bei Bedarf erzeugen. Dies vermeidet unnötige Berechnungen und ermöglicht es auch, sie mit unendlichen Iteratoren zu verwenden. Bei unendlichen Iteratoren gibt every() false zurück, sobald der erste falsy Wert gefunden wird. Wenn die Funktion callbackFn immer einen truthy Wert zurückgibt, gibt die Methode niemals zurück.

Beispiele

Verwendung von every()

js
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 halben Zustand belassen.

js
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

Siehe auch