Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Object : méthode statique keys()

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 juillet 2015.

La méthode statique Object.keys() retourne un tableau contenant les noms des propriétés propres à un objet (qui ne sont pas héritées par la chaîne de prototypes) et qui sont énumérables.

Exemple interactif

const object = {
  a: "du texte",
  b: 42,
  c: false,
};

console.log(Object.keys(object));
// Résultat attendu : Array ["a", "b", "c"]

Syntaxe

js
Object.keys(obj)

Paramètres

obj

Un objet.

Valeur de retour

Un tableau de chaînes de caractères représentant les clés de propriétés propres et énumérables de l'objet donné.

Description

Object.keys() retourne un tableau dont les éléments sont des chaînes de caractères correspondant aux noms des propriétés propres et énumérables de 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.keys() est le même que celui fourni par une boucle for...in.

Si vous avez besoin des valeurs des propriétés, utilisez plutôt Object.values(). Si vous avez besoin à la fois des clés et des valeurs des propriétés, utilisez plutôt Object.entries().

Exemples

Utiliser Object.keys()

js
// Tableau simple
const tableau = ["a", "b", "c"];
console.log(Object.keys(tableau)); // ['0', '1', '2']

// Objet semblable à un tableau
const objet = { 0: "a", 1: "b", 2: "c" };
console.log(Object.keys(objet)); // ['0', '1', '2']

// Objet semblable à un tableau avec un ordre de clé aléatoire
const unObjet = { 100: "a", 2: "b", 7: "c" };
console.log(Object.keys(unObjet)); // ['2', '7', '100']

// getToto est une propriété qui n'est pas énumérable
const monObjet = Object.create(
  {},
  {
    getToto: {
      value() {
        return this.toto;
      },
    },
  },
);
monObjet.toto = 1;
console.log(Object.keys(monObjet)); // ['toto']

Si vous voulez toutes les propriétés propres avec des clés de type chaîne de caractères, y compris celles qui ne sont pas énumérables, consultez Object.getOwnPropertyNames().

Utiliser Object.keys() sur les primitives

Les arguments qui ne sont pas des objets sont convertis en objets. undefined et null ne peuvent pas être convertis en objets et déclenchent immédiatement une exception TypeError. Seules les chaînes de caractères peuvent avoir des propriétés propres énumérables, tandis que tous les autres types primitifs retournent un tableau vide.

js
// Les chaînes de caractères ont des indices comme propriétés propres énumérables
console.log(Object.keys("foo")); // ['0', '1', '2']

// Les autres types primitifs, à l'exception de undefined et null, n'ont pas de propriétés propres
console.log(Object.keys(100)); // []

Note : Dans ES5, passer un argument qui n'est pas un objet à Object.keys() déclenchait une TypeError.

Spécifications

Spécification
ECMAScript® 2027 Language Specification
# sec-object.keys

Compatibilité des navigateurs

Voir aussi