A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Iterator/filter below:

Iterator.prototype.filter() - JavaScript | MDN

Iterator.prototype.filter()

Baseline 2025

Newly available

Die Methode filter() von Iterator Instanzen gibt ein neues Iterator-Helferobjekt zurück, das nur die Elemente des Iterators liefert, für die die bereitgestellte Callback-Funktion true zurückgibt.

Syntax Parameter
callbackFn

Eine Funktion, die für jedes vom Iterator erzeugte Element ausgeführt wird. Sie sollte einen truthy Wert zurückgeben, damit das Element vom Iterator-Helfer angegeben wird, und einen falsy Wert sonst. 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

Ein neues Iterator-Helferobjekt. Jedes Mal, wenn die next()-Methode des Iterator-Helfers aufgerufen wird, gibt sie das nächste Element im Iterator zurück, für das die Callback-Funktion true zurückgibt. Wenn der zugrunde liegende Iterator abgeschlossen ist, wird auch das Iterator-Helferobjekt abgeschlossen (die next()-Methode erzeugt { value: undefined, done: true }).

Beschreibung

Der Hauptvorteil von Iterator-Helfern gegenüber Array-Methoden ist, dass sie "lazy" sind, was bedeutet, dass sie den nächsten Wert nur bei Bedarf erzeugen. Dies vermeidet unnötige Berechnungen und ermöglicht auch die Verwendung mit unendlichen Iteratoren.

Beispiele Verwendung von filter()

Im folgenden Beispiel wird ein Iterator erstellt, der Terme der Fibonacci-Folge liefert, und liest dann die ersten wenigen Terme, die gerade sind:

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

const seq = fibonacci().filter((x) => x % 2 === 0);
console.log(seq.next().value); // 2
console.log(seq.next().value); // 8
console.log(seq.next().value); // 34
Verwendung von filter() mit einer for...of Schleife

filter() ist am bequemsten, wenn Sie den Iterator nicht manuell erstellen. Da Iteratoren auch iterierbar sind, können Sie den zurückgegebenen Helfer mit einer for...of Schleife durchlaufen:

for (const n of fibonacci().filter((x) => x % 2 === 0)) {
  console.log(n);
  if (n > 30) {
    break;
  }
}

// Logs:
// 2
// 8
// 34

Dies ist gleichbedeutend mit:

for (const n of fibonacci()) {
  if (n % 2 !== 0) {
    continue;
  }
  console.log(n);
  if (n > 30) {
    break;
  }
}
Spezifikationen Browser-Kompatibilität Siehe auch

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4