Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Iterator
  6. take()

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

View in EnglishAlways switch to English

Iterator.prototype.take()

Baseline 2025
Newly available

Since ⁨March 2025⁩, this feature works across the latest devices and browser versions. This feature might not work in older devices or browsers.

Dietake() Methode vonIterator Instanzen gibt ein neuesIterator-Hilfsobjekt zurück, das die gegebene Anzahl von Elementen in diesem Iterator liefert und dann beendet.

Syntax

js
take(limit)

Parameter

limit

Die Anzahl von Elementen, die vom Beginn der Iteration an übernommen werden sollen.

Rückgabewert

Ein neuesIterator-Hilfsobjekt. Der zurückgegebene Iteratoren-Helfer liefert die Elemente im ursprünglichen Iterator einzeln und endet dann (dienext() Methode erzeugt{ value: undefined, done: true }), nachdemlimit Elemente geliefert wurden oder wenn der ursprüngliche Iterator erschöpft ist, je nachdem, was zuerst eintritt.

Ausnahmen

RangeError

Wird ausgelöst, wennlimit zuNaN oder negativ wird, wenn esin eine Ganzzahl konvertiert wird.

Beispiele

Verwendung von take()

Das folgende Beispiel erstellt einen Iterator, der Begriffe in der Fibonacci-Sequenz liefert, und protokolliert dann die ersten drei Begriffe:

js
function* fibonacci() {  let current = 1;  let next = 1;  while (true) {    yield current;    [current, next] = [next, current + next];  }}const seq = fibonacci().take(3);console.log(seq.next().value); // 1console.log(seq.next().value); // 1console.log(seq.next().value); // 2console.log(seq.next().value); // undefined

Verwendung von take() mit einer for...of Schleife

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

js
for (const n of fibonacci().take(5)) {  console.log(n);}// Logs:// 1// 1// 2// 3// 5

Dafibonacci() ein unendlicher Iterator ist, würde die Verwendung einerfor Schleife, um ihn zu durchlaufen, ohne eine Logik zum vorzeitigen Beenden (wie einebreak Anweisung), zu einer Endlosschleife führen.

Kombination von drop() mit take()

Sie könnentake() mitIterator.prototype.drop() kombinieren, um einen Ausschnitt eines Iterators zu erhalten:

js
for (const n of fibonacci().drop(2).take(5)) {  // Drops the first two elements, then takes the next five  console.log(n);}// Logs:// 2// 3// 5// 8// 13for (const n of fibonacci().take(5).drop(2)) {  // Takes the first five elements, then drops the first two  console.log(n);}// Logs:// 2// 3// 5

Untere und obere Grenzen der Übernahmeanzahl

Wenn daslimit negativ oderNaN ist, wird einRangeError ausgelöst:

js
fibonacci().take(-1); // RangeError: -1 must be positivefibonacci().take(undefined); // RangeError: undefined must be positive

Wenn daslimit größer ist als die Gesamtzahl der Elemente, die der Iterator erzeugen kann (wieInfinity), hat der zurückgegebene Iteratoren-Helfer im Wesentlichen dasselbe Verhalten wie der ursprüngliche Iterator:

js
for (const n of new Set([1, 2, 3]).values().take(Infinity)) {  console.log(n);}// Logs:// 1// 2// 3

Spezifikationen

Specification
ECMAScript® 2026 Language Specification
# sec-iterator.prototype.take

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp