269 votes

Itération par liste de clés pour un tableau associatif dans JSON

J'ai un tableau associatif dans JSON:

 var dictionary = {
    "cats": [1,2,3,4,5], 
    "dogs": [6,7,8,9,10]
};
 

Comment puis-je obtenir les clés de ce dictionnaire?

Je vais bien créer un tableau séparé si nécessaire, mais espérais une solution plus simple.

 var keys = ["cats", "dogs"];
 

383voto

JW. Points 17361

Essaye ça:

 var keys = [];
for (var key in dictionary) {
  if (dictionary.hasOwnProperty(key)) {
    keys.push(key);
  }
}
 

184voto

wombleton Points 6130
 for (var key in dictionary) {
  // do something with key
}
 

C'est la déclaration for..in .

103voto

Rob de la Cruz Points 191

Vous pouvez utiliser: Object.keys(obj)

Exemple:

 var dictionary = {"cats":[1,2,37,38,40,32,33,35,39,36], "dogs": [4,5,6,3,2]};

// Get the keys
var keys = Object.keys(dictionary);
 

Voir la référence ci-dessous pour la prise en charge du navigateur. Il est pris en charge dans Firefox 4.20, Chrome 5, IE9. Le lien ci-dessous contient un extrait de code que vous pouvez ajouter si Object.keys() n'est pas pris en charge dans votre navigateur.

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/keys

16voto

Jesse Points 3520

Juste un petit mot, se méfier de l’utilisation pour... dans si vous utilisez une bibliothèque (jQuery, prototype, etc.), car la plupart d'entre eux ajouter des méthodes aux objets créés (y compris les dictionnaires).

Cela signifie que lorsque vous en boucle sur eux, les noms de méthode apparaîtra en tant que clés. Si vous utilisez une bibliothèque, regardez la documentation et recherchez une section énumérable, où vous trouverez les bonnes méthodes d’itération de vos objets.

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