215 votes

meilleur moyen d'obtenir la clé d'un objet javascript clé/valeur

Si j'ai un objet JS comme :

 var foo = { 'bar' : 'baz' }

Si je sais que foo a cette structure clé/valeur de base, mais que je ne connais pas le nom de la clé, quel est le moyen le plus simple de l'obtenir ? for ... in ? $.each() ? J'espère qu'il y a mieux....

221voto

Michael Benin Points 1009

Vous itérez à l'intérieur de l'objet avec une boucle for :

 for(var i in foo){
  alert(i); // alerts key
  alert(foo[i]); //alerts key's value
}

Ou alors

 Object.keys(foo)
  .forEach(function eachKey(key) { 
    alert(key); // alerts key 
    alert(foo[key]); // alerts value
  });

113voto

user01 Points 1315

Vous pouvez accéder à chaque clé individuellement sans itérer comme dans :

 var obj = { first: 'someVal', second: 'otherVal' };
alert(Object.keys(obj)[0]); // returns first
alert(Object.keys(obj)[1]); // returns second

75voto

Aryeh Beitz Points 603

Étant donné votre objet :

 var foo = { 'bar' : 'baz' }

Pour obtenir bar , utilisez :

 Object.keys(foo)[0]

Pour obtenir baz , utilisez :

 foo[Object.keys(foo)[0]]

En supposant un seul objet

33voto

theonelucas Points 509

Une doublure pour vous :

 const OBJECT = {
    'key1': 'value1',
    'key2': 'value2',
    'key3': 'value3',
    'key4': 'value4'
};

const value = 'value2';

const key = Object.keys(OBJECT)[Object.values(OBJECT).indexOf(value)];

window.console.log(key); // = key2

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