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/Array/values below:

Array.prototype.values() - JavaScript | MDN

Array.prototype.values()

Baseline Widely available

Die values() Methode von Array Instanzen gibt ein neues Array-Iterator-Objekt zurück, das die Werte jedes Elements im Array durchläuft.

Probieren Sie es aus
const array1 = ["a", "b", "c"];
const iterator = array1.values();

for (const value of iterator) {
  console.log(value);
}

// Expected output: "a"
// Expected output: "b"
// Expected output: "c"
Syntax Parameter

Keine.

Rückgabewert

Ein neues iterables Iteratorobjekt.

Beschreibung

Array.prototype.values() ist die Standardimplementierung von Array.prototype[Symbol.iterator]().

Array.prototype.values === Array.prototype[Symbol.iterator]; // true

Wenn es auf dünn besetzten Arrays verwendet wird, durchläuft die values() Methode leere Plätze, als ob sie den Wert undefined hätten.

Die values() Methode ist generisch. Sie erwartet nur, dass der this Wert eine length Eigenschaft und integer-indizierte Eigenschaften hat.

Beispiele Iteration mit for...of Schleife

Da values() einen iterablen Iterator zurückgibt, können Sie eine for...of Schleife verwenden, um ihn zu durchlaufen.

const arr = ["a", "b", "c", "d", "e"];
const iterator = arr.values();

for (const letter of iterator) {
  console.log(letter);
} // "a" "b" "c" "d" "e"
Iteration mit next()

Da der Rückgabewert ebenfalls ein Iterator ist, können Sie direkt die next() Methode aufrufen.

const arr = ["a", "b", "c", "d", "e"];
const iterator = arr.values();
iterator.next(); // { value: "a", done: false }
iterator.next(); // { value: "b", done: false }
iterator.next(); // { value: "c", done: false }
iterator.next(); // { value: "d", done: false }
iterator.next(); // { value: "e", done: false }
iterator.next(); // { value: undefined, done: true }
console.log(iterator.next().value); // undefined
Wiederverwendung des Iterables

Warnung: Das Array-Iterator-Objekt sollte ein einmal zu verwendendes Objekt sein. Verwenden Sie es nicht erneut.

Das von values() zurückgegebene Iterable ist nicht wiederverwendbar. Wenn next().done = true oder currentIndex > length, endet die for...of Schleife, und es hat keinen Effekt, sie weiter zu durchlaufen.

const arr = ["a", "b", "c", "d", "e"];
const values = arr.values();
for (const letter of values) {
  console.log(letter);
}
// "a" "b" "c" "d" "e"
for (const letter of values) {
  console.log(letter);
}
// undefined

Wenn Sie eine break Anweisung verwenden, um die Iteration vorzeitig zu beenden, kann der Iterator an der aktuellen Position fortfahren, wenn Sie ihn weiter durchlaufen.

const arr = ["a", "b", "c", "d", "e"];
const values = arr.values();
for (const letter of values) {
  console.log(letter);
  if (letter === "b") {
    break;
  }
}
// "a" "b"

for (const letter of values) {
  console.log(letter);
}
// "c" "d" "e"
Mutationen während der Iteration

Es werden keine Werte im Array-Iterator-Objekt gespeichert, das von values() zurückgegeben wird; stattdessen speichert es die Adresse des Arrays, das bei seiner Erstellung verwendet wurde, und liest den aktuell besuchten Index bei jeder Iteration. Daher hängen die Iterationsergebnisse vom Wert ab, der zu diesem Zeitpunkt in diesem Index gespeichert ist. Wenn sich die Werte im Array ändern, ändern sich auch die Werte des Array-Iterator-Objekts.

const arr = ["a", "b", "c", "d", "e"];
const iterator = arr.values();
console.log(iterator); // Array Iterator { }
console.log(iterator.next().value); // "a"
arr[1] = "n";
console.log(iterator.next().value); // "n"

Im Gegensatz zu iterativen Methoden speichert das Array-Iterator-Objekt nicht die Länge des Arrays zum Zeitpunkt der Erstellung, sondern liest sie einmal bei jeder Iteration. Daher, wenn das Array während der Iteration wächst, wird der Iterator auch die neuen Elemente besuchen. Dies kann zu Endlosschleifen führen.

const arr = [1, 2, 3];
for (const e of arr) {
  arr.push(e * 10);
}
// RangeError: invalid array length
Iteration über dünn besetzte Arrays

values() wird leere Plätze besuchen, als ob sie undefined wären.

for (const element of [, "a"].values()) {
  console.log(element);
}
// undefined
// 'a'
Aufrufen von values() auf Nicht-Array-Objekten

Die values() Methode liest die length Eigenschaft von this und greift dann auf jede Eigenschaft zu, deren Schlüssel eine nicht negative Ganzzahl ist, die kleiner als length ist.

const arrayLike = {
  length: 3,
  0: "a",
  1: "b",
  2: "c",
  3: "d", // ignored by values() since length is 3
};
for (const entry of Array.prototype.values.call(arrayLike)) {
  console.log(entry);
}
// a
// b
// c
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