Iterator.prototype.some()
Baseline
2025
Neu verfügbar
Seit March 2025 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
Die some() Methode von Iterator Instanzen ist ähnlich wie Array.prototype.some(): Sie gibt true zurück, wenn sie ein Element findet, das die angegebene Testfunktion erfüllt. Andernfalls, wenn der Iterator erschöpft ist, ohne ein solches Element zu finden, gibt sie false zurück.
Syntax
some(callbackFn)
Parameter
callbackFn-
Eine Funktion, die für jedes vom Iterator produzierte 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 Rückruffunktion einen truthy Wert für mindestens ein Element zurückgibt. Andernfalls false.
Beschreibung
some() iteriert über den Iterator und ruft die callbackFn Funktion einmal für jedes Element auf. Sie gibt sofort true zurück, wenn die Rückruffunktion einen truthy Wert zurückgibt. Andernfalls iteriert sie bis zum Ende des Iterators und gibt false zurück. Wenn some() true zurückgibt, wird der zugrunde liegende Iterator durch Aufrufen seiner return() Methode geschlossen.
Der Hauptvorteil von Iterator-Helfern gegenüber Array-Methoden besteht darin, dass sie lazy sind, was bedeutet, dass sie den nächsten Wert nur bei Bedarf erzeugen. Dies vermeidet unnötige Berechnungen und ermöglicht es ihnen auch, mit unendlichen Iteratoren verwendet zu werden. Bei unendlichen Iteratoren gibt some() true zurück, sobald der erste truthy Wert gefunden wird. Wenn die callbackFn immer einen falsy Wert zurückgibt, gibt die Methode niemals zurück.
Der Aufruf von some() schließt immer den zugrunde liegenden Iterator, auch wenn die Methode früh zurückkehrt. Der Iterator wird nie in einem unvollständigen Zustand zurückgelassen.
Beispiele
>Nutzung 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;
console.log(fibonacci().take(10).some(isNegative)); // false
console.log(fibonacci().some(isNegative)); // Never completes
Die Methode schließt den Iterator, nachdem sie zurückgegeben wurde.
const seq = fibonacci();
console.log(seq.some(isEven)); // true
console.log(seq.next()); // { value: undefined, done: true }
Spezifikationen
| Spezifikation |
|---|
| ECMAScript® 2027 Language Specification> # sec-iterator.prototype.some> |