Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. JavaScript
  3. JavaScript-Referenz
  4. Eingebaute Standardobjekte
  5. Array
  6. values()

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

View in EnglishAlways switch to English

Array.prototype.values()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨Mai 2018⁩.

Dievalues()-Methode vonArray-Instanzen gibt ein neuesArray-Iterator-Objekt zurück, das den Wert jedes Elements im Array durchläuft.

Probieren Sie es aus

const array = ["a", "b", "c"];const iterator = array.values();for (const value of iterator) {  console.log(value);}// Expected output: "a"// Expected output: "b"// Expected output: "c"

Syntax

js
values()

Parameter

Keine.

Rückgabewert

Ein neuesiterierbares Iterator-Objekt.

Beschreibung

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

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

Bei der Verwendung aufsparse arrays durchläuft dievalues()-Methode leere Slots, als ob sie den Wertundefined haben.

Dievalues()-Methode istgenerisch. Sie erwartet nur, dass derthis-Wert einelength-Eigenschaft und Schlüssel mit ganzzahligen Werten besitzt.

Beispiele

Iteration mit for...of-Schleife

Davalues() ein iterierbares Iterator-Objekt zurückgibt, können Sie einefor...of-Schleife verwenden, um darüber zu iterieren.

js
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 auch ein Iterator ist, können Sie direkt dienext()-Methode aufrufen.

js
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 Iterators

Warnung:Das Array-Iterator-Objekt sollte nur einmal verwendet werden. Verwenden Sie es nicht wieder.

Der ausvalues() zurückgegebene Iterator ist nicht wiederverwendbar. Wennnext().done = true odercurrentIndex > length,endet diefor...of-Schleife, und ein weiteres Iterieren hat keinen Effekt.

js
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 einebreak-Anweisung verwenden, um die Iteration vorzeitig zu beenden, kann der Iterator von der aktuellen Position aus fortgesetzt werden, wenn weiter iteriert wird.

js
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"

Veränderungen während der Iteration

Es werden keine Werte im ausvalues() zurückgegebenen Array-Iterator-Objekt gespeichert; stattdessen speichert es die Adresse des Arrays, das bei seiner Erstellung verwendet wurde, und liest den aktuell besuchten Index bei jeder Iteration. Daher hängt die Ausgabe der Iteration vom Wert ab, der zu diesem Zeitpunkt an diesem Index gespeichert ist. Wenn sich die Werte im Array ändern, ändern sich die Werte des Array-Iterator-Objekts ebenfalls.

js
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 zuiterierenden Methoden speichert das Array-Iterator-Objekt nicht die Länge des Arrays zum Zeitpunkt seiner Erstellung, sondern liest sie bei jeder Iteration einmal. Daher, wenn das Array während der Iteration wächst, besucht der Iterator auch die neuen Elemente. Dies kann zu Endlosschleifen führen.

js
const arr = [1, 2, 3];for (const e of arr) {  arr.push(e * 10);}// RangeError: invalid array length

Iteration von sparse Arrays

values() wird leere Slots besuchen, als ob sieundefined sind.

js
for (const element of [, "a"].values()) {  console.log(element);}// undefined// 'a'

Aufrufen von values() auf Nicht-Array-Objekten

Dievalues()-Methode liest dielength-Eigenschaft vonthis aus und greift dann auf jede Eigenschaft zu, deren Schlüssel eine nicht-negative Ganzzahl kleiner alslength ist.

js
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

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.values

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