Cette page a été traduite à partir de l'anglais par la communauté.Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Object.keys()
Baseline Widely available
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éthodeObject.keys() renvoie un tableau contenant les noms des propriétés propres à un objet (qui ne sont pas héritées via la chaîne de prototypes) et qui sont énumérables. L'ordre de ce tableau est le même que celui obtenu par une bouclefor...in (à la différence qu'une boucle for-in liste également les propriétés héritées).
Dans cet article
Exemple interactif
const object1 = { a: "somestring", b: 42, c: false,};console.log(Object.keys(object1));// Expected output: Array ["a", "b", "c"]Syntaxe
Object.keys(obj);Paramètres
objL'objet dont on souhaite lister les propriétés propres et énumérables.
Valeur de retour
Un tableau de chaînes de caractères qui sont les noms des propriétés énumérables de l'objet passé en argument.
Description
Object.keys() renvoie un tableau dont les éléments sont les chaînes de caractères des noms des propriétés propres et énumérables d'obj. L'ordre des propriétés obtenu est le même que celui obtenu lorsqu'on boucle manuellement sur les propriétés de l'objet.
Exemples
var arr = ["a", "b", "c"];console.log(Object.keys(arr));// affichera ['0', '1', '2']// un objet semblable à un tableauvar obj = { 0: "a", 1: "b", 2: "c" };console.log(Object.keys(obj));// affichera ['0', '1', '2']// un objet semblable à un tableau avec// un ordre de clé aléatoirevar an_obj = { 100: "a", 2: "b", 7: "c" };console.log(Object.keys(an_obj));// affichera ['2', '7', '100']// getToto est une propriété non énumérablevar monObjet = Object.create( {}, { getToto: { value: function () { return this.toto; }, }, },);monObjet.toto = 1;console.log(Object.keys(monObjet));// affichera ['toto']Si on souhaite lister toutes les propriétés, y compris celles qui ne sont pas énumérables, on pourra utiliserObject.getOwnPropertyNames().
Notes
Pour ES5, si l'argument passé à la méthode n'est pas un objet mais une valeur d'un autre type primitif, cela entraînera une exceptionTypeError. Pour ES2015 (ES6), un argument qui n'est pas un objet sera d'abord converti en objet.
Object.keys("toto");// TypeError: "toto" n'est pas un objet (code ES5)Object.keys("toto");// ["0", "1", "2", "3"] (code ES2015)Spécifications
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object.keys> |