Object : méthode statique values()
Baseline
Large disponibilité
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis mars 2017.
La méthode statique Object.values() retourne un tableau contenant les valeurs des propriétés énumérables d'un objet donné ayant des clés de type chaîne de caractères.
Exemple interactif
const object = {
a: "du texte",
b: 42,
c: false,
};
console.log(Object.values(object));
// Résultat attendu : Array ["du texte", 42, false]
Syntaxe
Object.values(obj)
Paramètres
obj-
Un objet.
Valeur de retour
Un tableau dont les éléments sont les valeurs des propriétés énumérables de l'objet passé en argument.
Description
Object.values() retourne un tableau dont les éléments sont les valeurs des propriétés énumérables ayant des clés de type chaîne de caractères directement rattachées à l'objet object. C'est la même chose que d'itérer avec une boucle for...in, sauf qu'une boucle for...in énumère également les propriétés de la chaîne de prototypes. L'ordre du tableau retourné par Object.values() est le même que celui fourni par une boucle for...in.
Si vous avez besoin des clés des propriétés, utilisez plutôt Object.keys(). Si vous avez besoin à la fois des clés et des valeurs des propriétés, utilisez plutôt Object.entries().
Exemples
>Utiliser Object.values()
const obj = { toto: "truc", baz: 42 };
console.log(Object.values(obj)); // ['truc', 42]
// Objet semblable à un tableau
const objCommeTableau1 = { 0: "a", 1: "b", 2: "c" };
console.log(Object.values(objCommeTableau1)); // ['a', 'b', 'c']
// Objet semblable à un tableau avec un ordre de clés aléatoire
// Lors de l'utilisation de clés numériques, les valeurs sont retournées
// dans l'ordre numérique des clés
const objCommeTableau2 = { 100: "a", 2: "b", 7: "c" };
console.log(Object.values(objCommeTableau2)); // ['b', 'c', 'a']
// getToto n'est pas une propriété énumérable
const monObjet = Object.create(
{},
{
getToto: {
value() {
return this.toto;
},
},
},
);
monObjet.toto = "truc";
console.log(Object.values(monObjet)); // ['truc']
Utiliser Object.values() sur des primitifs
Les arguments qui ne sont pas des objets sont convertis en objets. undefined et null ne peuvent pas être convertis en objets et lèvent immédiatement une TypeError. Seules les chaînes de caractères peuvent avoir des propriétés énumérables propres, tandis que tous les autres primitifs retournent un tableau vide.
// Les chaînes de caractères ont des indices comme propriétés énumérables propres
console.log(Object.values("toto")); // ['t', 'o', 't', 'o']
// Les autres primitives à l'exception de undefined et null n'ont pas de propriétés propres
console.log(Object.values(100)); // []
Spécifications
| Spécification |
|---|
| ECMAScript® 2027 Language Specification> # sec-object.values> |
Compatibilité des navigateurs
Voir aussi
- Prothèse d'émulation de
Object.valuesdanscore-js(angl.) - Prothèse d'émulation es-shims de
Object.values(angl.) - Énumérable et rattachement des propriétés
- La méthode statique
Object.keys() - La méthode statique
Object.entries() - La méthode
Object.prototype.propertyIsEnumerable() - La méthode statique
Object.create() - La méthode statique
Object.getOwnPropertyNames() - La méthode
Map.prototype.values()