| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/values | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Mai 2018 browserbergreifend verfgbar.
Die values() Methode von Array Instanzen gibt ein neues Array-Iterator-Objekt zurck, das den Wert jedes Elements im Array durchluft.
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"
values()
Keine.
Ein neues iterierbares Iterator-Objekt.
Array.prototype.values() ist die Standardimplementierung von Array.prototype[Symbol.iterator]().
Array.prototype.values === Array.prototype[Symbol.iterator]; // true
Wenn sie auf sparsely arrays verwendet wird, durchluft die values()-Methode leere Positionen, als htten sie den Wert undefined.
Die values() Methode ist generisch. Sie erwartet nur, dass der this-Wert eine length-Eigenschaft und integer-geschlsselte Eigenschaften hat.
Da values() einen iterierbaren Iterator zurckgibt, knnen 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"
Da der Rckgabewert ebenfalls ein Iterator ist, knnen Sie direkt dessen 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
Warnung: Das Array-Iterator-Objekt sollte ein Einweg-Objekt sein. Es sollte nicht wiederverwendet werden.
Das von values() zurckgegebene Iterable ist nicht wiederverwendbar. Wenn next().done = true oder currentIndex > length, endet die for...of Schleife, und ein weiteres Durchlaufen hat keinen Effekt.
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);
}
// No output
Wenn Sie eine break-Anweisung verwenden, um die Iteration vorzeitig zu beenden, kann der Iterator bei Fortsetzung der Iteration von der aktuellen Position aus fortgesetzt werden.
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"
Im Array-Iterator-Objekt, das von values() zurckgegeben wird, sind keine Werte gespeichert; stattdessen speichert es die Adresse des Arrays, das bei seiner Erstellung verwendet wurde, und liest den aktuell besuchten Index bei jeder Iteration. Daher hngt seine Iterationsausgabe von dem Wert ab, der zu diesem Zeitpunkt an diesem Index gespeichert ist. ndern sich die Werte im Array, 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 den iterativen Methoden speichert das Array-Iterator-Objekt die Lnge des Arrays nicht zum Zeitpunkt seiner Erstellung, sondern liest sie bei jeder Iteration einmal. Daher wird der Iterator, wenn das Array whrend der Iteration wchst, auch die neuen Elemente besuchen. Dies kann zu Endlosschleifen fhren.
const arr = [1, 2, 3];
for (const e of arr) {
arr.push(e * 10);
}
// RangeError: invalid array length
values() wird leere Slots besuchen, als ob sie undefined wren.
for (const element of [, "a"].values()) {
console.log(element);
}
// undefined
// 'a'
Die values()-Methode liest die length-Eigenschaft von this und greift dann auf jede Eigenschaft zu, deren Schlssel ein nicht-negativer Integer ist, der 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
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.values |
Array.prototype.values in core-jsArray.prototype.valuesArrayArray.prototype.entries()Array.prototype.keys()Array.prototype[Symbol.iterator]()TypedArray.prototype.values()Arrayat()concat()copyWithin()entries()every()fill()filter()find()findIndex()findLast()findLastIndex()flat()flatMap()forEach()includes()indexOf()join()keys()lastIndexOf()map()pop()push()reduce()reduceRight()reverse()shift()slice()some()sort()splice()toLocaleString()toReversed()toSorted()toSpliced()toString()unshift()values()with()[Symbol.iterator]()Object/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |