Esta página ha sido traducida del inglés por la comunidad.Aprende más y únete a la comunidad de MDN Web Docs.
Object.keys()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since julio de 2015.
El método estáticoObject.keys() devuelve un arreglo de propiedades enumerables propias de un objeto dado.
In this article
Pruébalo
const object1 = { a: "somestring", b: 42, c: false,};console.log(Object.keys(object1));// Expected output: Array ["a", "b", "c"]Sintaxis
Object.keys(obj)Parámetros
objUn objeto.
Valor devuelto
Un arreglo de strings que representan todas las propiedades del objeto.
Descripción
Object.keys devuelve un arreglo cuyos elementos son cadenas correspondientes a las propiedades enumerables que se encuentran directamente en elobject. Esto es lo mismo que iterar con un buclefor...in, excepto que un buclefor...in también enumera las propiedades en la cadena de prototipo. El orden del arreglo devuelto porObject.keys() es el mismo que proporciona el buclefor...in.
Si necesita los valores de la propiedad, useObject.values() en su lugar. Si necesita ambos las claves de la propiedad como sus valores, useObject.entries() en su lugar
Ejemplos
>Usando Object.keys()
// Arreglo sencilloconst arr = ["a", "b", "c"];console.log(Object.keys(arr)); // ['0', '1', '2']// Arreglo como objetoconst obj = { 0: "a", 1: "b", 2: "c" };console.log(Object.keys(obj)); // ['0', '1', '2']// arreglo como objeto con nombres ordenados aleatoriamenteconst anObj = { 100: "a", 2: "b", 7: "c" };console.log(Object.keys(anObj)); // ['2', '7', '100']// getFoo es una propiedad no enumerableconst myObj = Object.create( {}, { getFoo: { value() { return this.foo; }, }, },);myObj.foo = 1;console.log(Object.keys(myObj)); // ['foo']Si quierestodas las propiedades, incluso las no enumerables, miraObject.getOwnPropertyNames().
Usando Object.keys() en primitivos
Los argumentos que no son objetos sonobjetos forzados. Únicamente las cadenas pueden tener propiedades enumerables propias, mientras que todas las demás primitivas devuelven un arreglo vacío.
// Las cadenas de texto tienen índices como propiedades propias enumerablesconsole.log(Object.keys("foo")); // ['0', '1', '2']// Otros primitivos no tienen propiedas propiasconsole.log(Object.keys(100)); // []Nota:En ES5, si el argumento paraObject.keys() no es un objeto, causaráTypeError.
Especificaciones
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-object.keys> |