HTML: Markup language
CSS: Styling language
JavaScript: Scripting language
Web APIs: Programming interfaces
All web technology
Learn web development
Discover our tools
Get to know MDN better
Esta página ha sido traducida del inglés por la comunidad. Aprende más y únete a la comunidad de MDN Web Docs.
View in English Always switch to English
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ático Object.keys() devuelve un arreglo de propiedades enumerables propias de un objeto dado.
Object.keys()
const object1 = { a: "somestring", b: 42, c: false, }; console.log(Object.keys(object1)); // Expected output: Array ["a", "b", "c"]
Object.keys(obj)
obj
Un objeto.
Un arreglo de strings que representan todas las propiedades del objeto.
Object.keys devuelve un arreglo cuyos elementos son cadenas correspondientes a las propiedades enumerables que se encuentran directamente en el object. Esto es lo mismo que iterar con un bucle for...in, excepto que un bucle for...in también enumera las propiedades en la cadena de prototipo. El orden del arreglo devuelto por Object.keys() es el mismo que proporciona el bucle for...in.
Object.keys
object
for...in
Si necesita los valores de la propiedad, use Object.values() en su lugar. Si necesita ambos las claves de la propiedad como sus valores, use Object.entries() en su lugar
Object.values()
Object.entries()
// Arreglo sencillo const arr = ["a", "b", "c"]; console.log(Object.keys(arr)); // ['0', '1', '2'] // Arreglo como objeto const obj = { 0: "a", 1: "b", 2: "c" }; console.log(Object.keys(obj)); // ['0', '1', '2'] // arreglo como objeto con nombres ordenados aleatoriamente const anObj = { 100: "a", 2: "b", 7: "c" }; console.log(Object.keys(anObj)); // ['2', '7', '100'] // getFoo es una propiedad no enumerable const myObj = Object.create( {}, { getFoo: { value() { return this.foo; }, }, }, ); myObj.foo = 1; console.log(Object.keys(myObj)); // ['foo']
Si quieres todas las propiedades, incluso las no enumerables, mira Object.getOwnPropertyNames().
Object.getOwnPropertyNames()
Los argumentos que no son objetos son objetos 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 enumerables console.log(Object.keys("foo")); // ['0', '1', '2'] // Otros primitivos no tienen propiedas propias console.log(Object.keys(100)); // []
Nota: En ES5, si el argumento para Object.keys() no es un objeto, causará TypeError.
TypeError
Enable JavaScript to view this browser compatibility table.
core-js
Object.prototype.propertyIsEnumerable()
Object.create()
Map.prototype.keys()