127 votes

obtenir le dernier élément d'un objet javascript

Si j'ai un objet comme:

 { 'a' : 'apple', 'b' : 'banana', 'c' : 'carrot' }
 

Si je ne sais pas à l'avance que la liste monte à «c», mis à part la lecture en boucle de l'objet, existe-t-il un moyen d'obtenir le dernier élément de l'objet (par exemple, 'carrot' )?

278voto

Oui, il existe un moyen d'utiliser Object.keys(obj) . C'est expliqué dans cette page :

 var fruitObject = { 'a' : 'apple', 'b' : 'banana', 'c' : 'carrot' };
Object.keys(fruitObject); // this returns all properties in an array ["a", "b", "c"]
 

Si vous voulez obtenir la valeur du dernier objet, vous pouvez faire ceci:

 fruitObject[Object.keys(fruitObject)[Object.keys(fruitObject).length - 1]] // "carrot"
 

77voto

Alex Points 21247

Non. L'ordre n'est pas garanti dans JSON ni dans la plupart des autres structures de données clé-valeur. Le dernier élément peut donc parfois être carrot et d'autres fois banana et ainsi de suite. Si vous avez besoin de vous fier à la commande, votre meilleur choix est d’utiliser des tableaux. La puissance des structures de données clé-valeur réside dans l'accès aux valeurs par leur keys , et non dans l'obtention de l'élément nth de l'objet.

28voto

user3282891 Points 11

last = Object.keys (obj) [Object.keys (obj) .length-1];

où obj est ton objet

15voto

George Points 21
 var myObj = {a: 1, b: 2, c: 3}, lastProperty;
for (lastProperty in myObj);
lastProperty;
//"c";
 

source: http://javascriptweblog.wordpress.com

5voto

meder Points 81864

Utilisez un tableau et non un objet littéral, si l'ordre est important.

 list = ['apple', 'banana', 'carrot'];
 

Ou quelque chose comme

 dict = {
 'a' : ['apple', 'awesome'],
 'b' : ['best friend']
};
 

Ou même..

 dict = [{letter:'a', list:['apple', 'awesome']},{letter:'b', list:['best friend']}];
 

Les clés pour dict ne sont pas du tout garanties d'être en ordre.

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