Me preguntaba si en JavaScript había alguna forma de recorrer un objeto así.
for(var i in myObject) {
// ...
}
Pero obtenga el nombre de cada propiedad de esta manera.
for(var i in myObject) {
separateObj[myObject[i].name] = myObject[i];
}
Parece que no puedo encontrar algo así en Google. Dicen que deben pasar los nombres de las variables con ellos, pero esta no es una opción para lo que estoy tratando de lograr.
Gracias por cualquier ayuda que pueda ofrecer.
javascript
object
properties
Olical
fuente
fuente
seperate
debería serseparate
'l' + new Array(1000).join('o') + 'ng'
camino desde entonces.Respuestas:
Use Object.keys ():
Object.keys()
le proporciona una matriz de nombres de propiedades que pertenecen al objeto de entrada.fuente
i
es el nombre.Entonces podrías hacer:
fuente
hasOwnProperty
si no desea propiedades heredadas. De esa manera no estás siguiendo ciegamente alguna regla. Puede ser que, en algunos casos, realmente desee ver las propiedades heredadas. Otra forma de recorrer las propias propiedades de un objeto es usar Object.keys .Object.keys(obj).forEach(function(prop){ alert obj[prop]})
Descargo de responsabilidad Entendí mal la pregunta: "¿Puedo saber el nombre de la propiedad a la que se adjuntó un objeto", pero decidí dejar la respuesta ya que algunas personas pueden terminar aquí mientras lo buscan.
No, un objeto podría estar asociado a varias propiedades, por lo que no tiene forma de saber su nombre.
¿Cuál sería el nombre de obj?
¿Estás seguro de que no solo quieres el nombre de la propiedad del ciclo for?
fuente
puedes iterar fácilmente en objetos
por ejemplo: si el objeto es var a = {a: 'manzana', b: 'pelota', c: 'gato', d: 'muñeca', e: 'elefante'};
fuente
para el acceso directo a una propiedad de un objeto por posición ... generalmente útil para la propiedad [0] ... por lo que contiene información sobre más ... o en node.js 'require.cache [0]' para el primer módulo externo cargado , etcétera etcétera.
fuente
Aparte de "Object.keys (obj)", tenemos un bucle muy simple "for ... in", que recorre los nombres de propiedades enumerables de un objeto.
fuente
Para obtener la propiedad del objeto o la "clave de matriz" o el "índice de matriz" dependiendo de cuál sea su idioma nativo ..... Utilice el método Object.keys ().
Importante, esto solo es compatible con los "navegadores modernos":
Entonces, si se llama a su objeto, myObject ...
Walla! Esto definitivamente funcionará en la última versión de Firefox y ie11 y Chrome ...
Aquí hay alguna documentación en MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
fuente
EN ES5
Por ejemplo, tienes este tipo de objeto:
Y ahora, si desea tener una función que si pasa '0' como parámetro, para obtener 'STEP_ELEMENT', si '2' para obtener 'BLUE_ELEMENT' y así
Probablemente esta no sea la mejor solución al problema, pero es bueno darle una idea de cómo hacerlo.
Salud.
fuente
A partir de 2018, puede utilizar
Object.getOwnPropertyNames()
como se describe en Documentación de Mozilla para desarrolladoresfuente
Cuando haces el bucle for / in que colocas primero, i es el nombre de la propiedad. Entonces tiene el nombre de propiedad, i, y accede al valor haciendo myObject [i].
fuente
Estas soluciones también funcionan.
fuente
Usando la
Object.keys()
función para adquirir propiedades de unObject
, y puede ayudar a buscar propiedades por nombre, por ejemplo:fuente
Rápido y sucio:
fuente