104 votes

Obtenir les valeurs d'un objet en JavaScript

J'ai cet objet :

var data = {"id": 1, "second": "abcd"};

Il s'agit de valeurs provenant d'un formulaire. Je les transmets à une fonction pour vérification.

Si les propriétés ci-dessus existent, nous pouvons obtenir leurs valeurs avec data["id"] y data["second"] mais parfois, en fonction d'autres valeurs, les propriétés peuvent être différentes.

Comment puis-je obtenir des valeurs de data indépendamment des noms de propriétés ?

116voto

cfs Points 10202

Pour accéder aux propriétés d'un objet sans connaître le nom de ces propriétés, vous pouvez utiliser une balise for ... in boucle :

for(key in data) {
    if(data.hasOwnProperty(key)) {
        var value = data[key];
        //do something with value;
    }
}

92voto

trincot Points 10112

Dans l'ES2017, vous pouvez utiliser Object.values() :

Object.values(data)

Au moment de la rédaction de cet article, le support est limité (FireFox et Chrome). Tous les principaux navigateurs, à l'exception d'IE, prennent en charge cette fonctionnalité.

Dans ES2015, vous pouvez utiliser ceci :

Object.keys(data).map(k => data[k])

51voto

Erel Segal Halevi Points 2308

Si vous voulez faire cela en une seule ligne, essayez :

Object.keys(a).map(function(key){return a[key]})

16voto

user3118220 Points 1310

Si vous $ est définie, alors vous pouvez itérer

var data={"id" : 1, "second" : "abcd"};
$.each(data, function() {
  var key = Object.keys(this)[0];
  var value = this[key];
  //do something with value;
}); 

Vous pouvez y accéder de la manière suivante Si vous connaissez les valeurs des clés

data.id

o

data["id"]

5voto

Cooshal Points 590

Je suis désolé que votre question de conclusion ne soit pas très claire, mais vous avez tort dès la première ligne. La variable data est un Objet pas un Array

Il est assez facile d'accéder aux attributs d'un objet :

alert(data.second);

Mais, si cela ne répond pas complètement à votre question, veuillez la préciser et renvoyer un message.

Merci !

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