Iterator.prototype.some()
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Die some()
Methode von Iterator
Instanzen ist ähnlich wie Array.prototype.some()
: Sie überprüft, ob mindestens ein Element, das vom Iterator erzeugt wird, den Test der bereitgestellten Funktion besteht. Sie gibt einen booleschen Wert zurück.
Syntax
some(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 die Callback-Funktion für mindestens ein Element einen truthy Wert zurückgibt. Andernfalls false
.
Beschreibung
some()
iteriert den Iterator und ruft die Funktion callbackFn
einmal für jedes Element auf. Es gibt sofort true
zurück, wenn die Callback-Funktion einen truthy Wert zurückgibt. Andernfalls iteriert es bis zum Ende des Iterators und gibt false
zurück. Wenn some()
true
zurückgibt, wird der zugrundeliegende 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 some()
true
zurück, sobald der erste truthy Wert gefunden wird. Wenn die callbackFn
stets einen falsy Wert zurückgibt, gibt die Methode niemals zurück.
Beispiele
Verwendung von some()
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().some(isEven)); // true
const isNegative = (x) => x < 0;
const isPositive = (x) => x > 0;
console.log(fibonacci().take(10).some(isPositive)); // false
console.log(fibonacci().some(isNegative)); // Never completes
Der Aufruf von some()
schließt immer den zugrundeliegenden Iterator, auch wenn die Methode früh zurückkehrt. Der Iterator wird niemals in einem halben Zustand belassen.
const seq = fibonacci();
console.log(seq.some(isEven)); // true
console.log(seq.next()); // { value: undefined, done: true }
Spezifikationen
Specification |
---|
Iterator Helpers # sec-iteratorprototype.some |
Browser-Kompatibilität
BCD tables only load in the browser