Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Iterator.prototype.includes()

Die includes()-Methode von Iterator-Instanzen ist ähnlich wie Array.prototype.includes(): Sie gibt true zurück, wenn sie ein Element findet, das dem angegebenen Wert entspricht. Andernfalls, wenn der Iterator erschöpft ist, ohne ein solches Element zu finden, gibt sie false zurück.

Syntax

js
includes(searchElement)
includes(searchElement, fromIndex)

Parameter

searchElement

Der Wert, nach dem gesucht werden soll.

fromIndex Optional

Nullbasierter Index, ab dem die Suche beginnen soll. Muss eine nicht-negative ganze Zahl, Infinity oder undefined sein. Wenn fromIndex größer oder gleich der Anzahl der vom Iterator erzeugten Elemente ist (einschließlich wenn fromIndex Infinity ist), gibt die Methode nach Erschöpfung des Iterators immer false zurück. Wenn fromIndex undefined ist, wird er standardmäßig auf 0 gesetzt.

Rückgabewert

Ein boolescher Wert, der true ist, wenn der Wert searchElement innerhalb des Iterators gefunden wird (oder im Teil des Iterators, der bei fromIndex beginnt, falls angegeben).

Ausnahmen

TypeError

Wird ausgelöst, wenn fromIndex nicht einer der folgenden ist: eine ganze Zahl, Infinity, -Infinity oder undefined.

RangeError

Wird ausgelöst, wenn fromIndex negativ ist.

Beschreibung

Die includes()-Methode vergleicht searchElement mit Elementen des Arrays unter Verwendung des SameValueZero-Algorithmus. Dieser Algorithmus funktioniert wie die strikte Gleichheit === (wobei -0 und +0 als gleich angesehen werden), mit der Ausnahme, dass NaN als gleich zu sich selbst betrachtet wird.

Im Gegensatz zu Array.prototype.includes() darf der fromIndex-Parameter von Iterator.prototype.includes() nicht negativ sein, da der Iterator keine bekannte Länge hat. Die Typüberprüfung ist ebenfalls strenger: Nicht-ganze Werte werden nicht auf ganze Zahlen reduziert.

Der Hauptvorteil von Iterator-Hilfsmethoden gegenüber Array-Methoden ist, dass sie faul sind, was bedeutet, dass sie den nächsten Wert nur dann erzeugen, wenn er angefordert wird. Dies vermeidet unnötige Berechnungen und ermöglicht auch ihre Nutzung mit unendlichen Iteratoren. Bei unendlichen Iteratoren gibt includes() true zurück, sobald das erste Übereinstimmung gefunden wird. Wenn der Wert niemals auftritt, gibt die Methode nie zurück.

Der Aufruf von includes() schließt immer den zugrunde liegenden Iterator, selbst wenn die Methode frühzeitig zurückkehrt. Der Iterator wird niemals in einem halbfertigen Zustand belassen.

Beispiele

Verwendung von includes()

js
function* fibonacci() {
  let current = 1;
  let next = 1;
  while (true) {
    yield current;
    [current, next] = [next, current + next];
  }
}

console.log(fibonacci().includes(8)); // true
console.log(fibonacci().take(10).includes(7)); // false
console.log(fibonacci().includes(7)); // Never completes

Die Methode schließt den Iterator nach der Rückgabe.

js
const seq = fibonacci();
console.log(seq.includes(8)); // true
console.log(seq.next()); // { value: undefined, done: true }

Verwendung von fromIndex

fromIndex gibt die Anzahl der vom Beginn an zu überspringenden Elemente an. Es ist äquivalent zum Aufruf von drop(fromIndex).includes(searchElement).

js
function* fibonacci() {
  let current = 1;
  let next = 1;
  while (true) {
    yield current;
    [current, next] = [next, current + next];
  }
}

console.log(fibonacci().includes(8, 3)); // true
console.log(fibonacci().includes(8, 10)); // false

Wenn fromIndex größer oder gleich den verfügbaren Elementen ist, wird false zurückgegeben.

js
["a", "b", "c"].values().includes("a", 3); // false

Spezifikationen

Diese Funktion scheint in keiner Spezifikation definiert zu sein.

Browser-Kompatibilität

Siehe auch