Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Iterator.prototype.some()
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.
Diesome() Methode vonIterator Instanzen ist ähnlich wieArray.prototype.some(): Sie prüft, ob mindestens ein Element, das vom Iterator erzeugt wird, den Test besteht, der durch die bereitgestellte Funktion implementiert wird. Sie gibt einen booleschen Wert zurück.
In diesem Artikel
Syntax
some(callbackFn)Parameter
callbackFnEine Funktion, die für jedes Element ausgeführt wird, das vom Iterator erzeugt wird. Sie sollte einentruthy Wert zurückgeben, um anzuzeigen, dass das Element den Test besteht, und einenfalsy Wert andernfalls. Die Funktion wird mit den folgenden Argumenten aufgerufen:
Rückgabewert
true, wenn die Callback-Funktion für mindestens ein Element einentruthy Wert zurückgibt. Andernfallsfalse.
Beschreibung
some() iteriert über den Iterator und ruft diecallbackFn Funktion einmal für jedes Element auf. Sie gibt soforttrue zurück, wenn die Callback-Funktion einen truthy Wert zurückgibt. Andernfalls iteriert sie bis zum Ende des Iterators und gibtfalse zurück. Wennsome()true zurückgibt, wird der zugrunde liegende Iterator durch Aufrufen seinerreturn() Methode geschlossen.
Der Hauptvorteil von Iterator-Methoden 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 erlaubt auch die Verwendung mit unendlichen Iteratoren. Bei unendlichen Iteratoren gibtsome() soforttrue zurück, sobald der erste truthy Wert gefunden wird. WenncallbackFn immer einen falsy Wert zurückgibt, gibt die Methode nie etwas 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)); // trueconst isNegative = (x) => x < 0;console.log(fibonacci().take(10).some(isNegative)); // falseconsole.log(fibonacci().some(isNegative)); // Never completesDer Aufruf vonsome() schließt immer den zugrunde liegenden Iterator, auch wenn die Methode frühzeitig zurückkehrt. Der Iterator bleibt nie in einem halbwegs Zustand.
const seq = fibonacci();console.log(seq.some(isEven)); // trueconsole.log(seq.next()); // { value: undefined, done: true }Spezifikationen
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-iterator.prototype.some> |