Je me demandais s'il y avait un moyen en JavaScript de parcourir un objet comme ça.
for(var i in myObject) {
// ...
}
Mais obtenez le nom de chaque propriété comme ceci.
for(var i in myObject) {
separateObj[myObject[i].name] = myObject[i];
}
Je n'arrive pas à trouver quoi que ce soit de semblable sur Google. Ils disent de transmettre les noms des variables avec eux, mais ce n'est pas une option pour ce que j'essaie de réaliser.
Merci pour toute aide que vous pouvez offrir.
javascript
object
properties
Olical
la source
la source
seperate
devrait êtreseparate
'l' + new Array(1000).join('o') + 'ng'
chemin depuis.Réponses:
Utilisez Object.keys ():
Object.keys()
vous donne un tableau de noms de propriétés appartenant à l'objet d'entrée.la source
i
est le nom.Vous pouvez donc faire:
la source
hasOwnProperty
si vous ne voulez pas de propriétés héritées. De cette façon, vous ne suivez pas aveuglément une règle. Il se peut que dans certains cas, vous souhaitiez réellement examiner les propriétés héritées. Une autre façon de parcourir les propres propriétés d'un objet consiste à utiliser Object.keys .Object.keys(obj).forEach(function(prop){ alert obj[prop]})
Clause de non-responsabilité J'ai mal compris la question comme étant: "Puis-je connaître le nom de la propriété à laquelle un objet était attaché", mais j'ai choisi de laisser la réponse car certaines personnes peuvent se retrouver ici en cherchant cela.
Non, un objet peut être attaché à plusieurs propriétés, il n'a donc aucun moyen de connaître son nom.
Quel serait le nom d'obj?
Êtes-vous sûr de ne pas vouloir uniquement le nom de la propriété de la boucle for?
la source
vous pouvez facilement itérer dans les objets
par exemple: si l'objet est var a = {a: 'pomme', b: 'balle', c: 'chat', d: 'poupée', e: 'éléphant'};
la source
pour un accès direct à une propriété d'objet par position ... généralement utile pour la propriété [0] ... donc il contient des informations sur la suite ... ou dans node.js 'require.cache [0]' pour le premier module externe chargé , etc.
la source
A part "Object.keys (obj)", nous avons une boucle "for ... in" très simple - qui boucle sur les noms de propriétés énumérables d'un objet.
la source
Pour obtenir la propriété de l'objet ou la "clé du tableau" ou "l'index du tableau" en fonction de votre langue maternelle ..... Utilisez la méthode Object.keys ().
Important, ceci n'est compatible qu'avec les "navigateurs modernes":
Donc, si votre objet est appelé, myObject ...
Walla! Cela fonctionnera certainement dans les derniers firefox et ie11 et chrome ...
Voici une documentation sur MDN https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
la source
DANS ES5
EG vous avez ce genre d'objet:
Et maintenant si vous voulez avoir une fonction qui si vous passez '0' comme paramètre - pour obtenir 'STEP_ELEMENT', si '2' pour obtenir 'BLUE_ELEMENT' et ainsi de suite pour
Ce n'est probablement pas la meilleure solution au problème, mais il est bon de vous donner une idée de la façon de le faire.
À votre santé.
la source
À partir de 2018, vous pouvez utiliser
Object.getOwnPropertyNames()
comme décrit dans la documentation du développeur Mozillala source
Lorsque vous effectuez la boucle for / in que vous avez créée en premier, i est le nom de la propriété. Vous avez donc le nom de la propriété, i, et accédez à la valeur en faisant myObject [i].
la source
Ces solutions fonctionnent aussi.
la source
Utilisation de la
Object.keys()
fonction pour acquérir des propriétés à partir d'unObject
, et cela peut aider à rechercher une propriété par nom, par exemple:la source
Rapide et sale:
la source