206 votes

JavaScript: Obtenir le nom de la propriété de l'objet

Je me demandais s'il existait un moyen en JavaScript de parcourir en boucle un objet comme celui-ci.

 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 du genre sur Google. Ils disent de passer 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.

210voto

Josiah Ruddell Points 14171

i est le nom.

 for(var name in obj) {
    alert(name);
    var value = obj[name];
    alert(value);
}
 

Alors tu pourrais faire:

 seperateObj[i] = myObject[i];
 

210voto

Trann Points 166

Utilisez Object.keys ():

 var keyNames = Object.keys(myObject);
for (var i in keyNames) {
     console.log(i);
}
 

Object.keys () vous donne un tableau de propriétés appartenant à l'objet d'entrée.

20voto

Juan Mendes Points 31678

Disclaimer J'ai mal compris la question: "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 pourraient se retrouver ici alors qu'elles cherchaient cela.


Non, un objet peut être attaché à plusieurs propriétés, il n'a donc aucun moyen de connaître son nom.

 var obj = {a:1};
var a = {x: obj, y: obj}
 

Quel serait le nom de obj?

Êtes-vous sûr de ne pas simplement vouloir le nom de la propriété dans la boucle for?

 for (var propName in obj) {
  console.log("Iterating through prop with name", propName, " its value is ", obj[propName])
}
 

7voto

ZEE Points 391

pour un accès direct à une propriété d'objet par position ... généralement utile pour la propriété [0] ... il contient donc des informations sur la suite ... ou dans node.js 'require.cache [0]' pour le premier module externe chargé , etc.

Object.keys (myObject) [0] Object.keys (myObject) [1] ... Object.keys (myObject) [n]

0voto

mmurch Points 354

Quand vous faites la boucle for / in que vous mettez en premier, i est le nom de la propriété. Donc, vous avez le nom de la propriété, i, et accédez à la valeur en faisant monObjet [i].

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X