110 votes

Accéder aux propriétés non numériques d'un objet par index ?

Si j'ai un tableau comme celui-ci :

var arr = ['one','two','three'];

Je peux ainsi accéder à différentes parties :

console.log(arr[1]);

Comment puis-je accéder aux propriétés d'un objet par leur ordre plutôt que par leur clé ?

Exemple :

var obj = {
    'something' : 'awesome',
    'evenmore'  : 'crazy'
},
jbo = {
    'evenmore'  : 'crazy',
    'something' : 'awesome'
};

Comment puis-je obtenir la première propriété de chaque objet - "quelque chose" de obj et "evenmore" de jbo -sans utiliser explicitement le nom de la propriété ?

Certains d'entre vous semblent penser que je cherche quelque chose comme.. :

console.log(obj['something']);

Ce n'est pas le cas, je cherche spécifiquement à cibler l'index, comme dans le premier exemple - si c'est possible.

0voto

Thiago Loddi Points 908

Si vous n'êtes pas sûr que Object.keys() va vous renvoyer les clés dans le bon ordre, vous pouvez essayer cette logique à la place

var keys = []
var obj = {
    'key1' : 'value1',
    'key2' : 'value2',
    'key3' : 'value3',
}
for (var key in obj){
    keys.push(key)
}
console.log(obj[keys[1]])
console.log(obj[keys[2]])
console.log(obj[keys[3]])

0voto

gab Points 820

Vous pouvez également construire une fonction qui renverra la valeur d'une propriété en acceptant deux paramètres : l'objet et l'"index" (position d'ordre).

function getValue(obj, index) {
   let keysArray = Object.keys(obj)
   let key = keysArray[index]
   return obj[key]
}

Exemple d'utilisation getValue(obj, 2)

Extrait

let obj = {a: 'dog', b: 'cat', c: 'mouse'}

function getValue(obj, index){
  let keysArray = Object.keys(obj)
  let key = keysArray[index]
  return obj[key]
}

console.log(getValue(obj, 2))

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