| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/Array/values | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis mai 2018.
La mthode values() des instances de Array retourne un nouvel objet itrateur de tableau qui itre sur la valeur de chaque lment du tableau.
const array = ["a", "b", "c"];
const iterator = array.values();
for (const value of iterator) {
console.log(value);
}
// Rsultat attendu : "a"
// Rsultat attendu : "b"
// Rsultat attendu : "c"
values()
Aucun.
Un nouvel objet d'itrateur itrable.
Array.prototype.values() est l'implmentation par dfaut de Array.prototype[Symbol.iterator]().
Array.prototype.values === Array.prototype[Symbol.iterator]; // true
Lorsqu'elle est utilise sur un tableau creux, la mthode values() itre sur les cases vides comme si elles avaient la valeur non dfinie (undefined).
La mthode values() est gnrique. Elle attend seulement que la valeur de this possde une proprit length et des proprits indices entiers.
for...ofComme values() retourne un itrateur itrable, vous pouvez utiliser une boucle for...of pour l'itrer.
const arr = ["a", "b", "c", "d", "e"];
const iterator = arr.values();
for (const letter of iterator) {
console.log(letter);
} // "a" "b" "c" "d" "e"
next()Comme la valeur de retour est aussi un itrateur, vous pouvez appeler directement sa mthode next().
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
Attention : L'objet itrateur de tableau doit tre utilis une seule fois. Ne le rutilisez pas.
L'itrable retourn par values() n'est pas rutilisable. Lorsque next().done = true ou que currentIndex > length, la boucle for...of se termine et toute itration supplmentaire n'a aucun effet.
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);
}
// Pas de sortie
Si vous utilisez une instruction break pour arrter l'itration prmaturment, l'itrateur peut reprendre la position courante lors de la prochaine itration.
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"
Aucune valeur n'est stocke dans l'objet itrateur de tableau retourn par values() : il stocke l'adresse du tableau utilis lors de sa cration et lit l'indice courant chaque itration. Ainsi, la valeur retourne dpend de la valeur stocke cet indice au moment de l'itration. Si les valeurs du tableau changent, celles de l'itrateur changent aussi.
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"
Contrairement aux mthodes itratives, l'itrateur de tableau ne mmorise pas la longueur du tableau sa cration, mais la lit chaque itration. Ainsi, si le tableau grandit pendant l'itration, l'itrateur visite aussi les nouveaux lments. Cela peut entraner des boucles infinies.
const arr = [1, 2, 3];
for (const e of arr) {
arr.push(e * 10);
}
// RangeError : longueur de tableau non valide
values() visite les cases vides comme si elles valent undefined.
for (const element of [, "a"].values()) {
console.log(element);
}
// undefined
// 'a'
values() sur des objets qui ne sont pas des tableauxLa mthode values() lit la proprit length de this puis accde chaque proprit dont la cl est un entier non ngatif infrieur length.
const objetSimilaireTableau = {
length: 3,
0: "a",
1: "b",
2: "c",
3: "d", // ignor par values(), car length vaut 3
};
for (const entry of Array.prototype.values.call(objetSimilaireTableau)) {
console.log(entry);
}
// a
// b
// c
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-array.prototype.values |
ArrayArray.prototype.entries()Array.prototype.keys()Array.prototype[Symbol.iterator]()TypedArray.prototype.values()Array.prototype.values dans core-js (angl.)Array.prototype.values (angl.)Cette page a t modifie le 19 aot 2026 par les contributeurices du MDN.
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/FunctionObject.prototype.__defineGetter__()Object.prototype.__defineSetter__()Object.prototype.__lookupGetter__()Object.prototype.__lookupSetter__()Object.prototype.hasOwnProperty()Object.prototype.isPrototypeOf()Object.prototype.propertyIsEnumerable()Object.prototype.toLocaleString()Object.prototype.toString()Object.prototype.valueOf()Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |