web-dev-qa-db-fra.com

Obtenir les valeurs d'un objet en JavaScript

J'ai cet objet:

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

Ce sont des valeurs d'un formulaire. Je passe ceci à une fonction pour vérification.

Si les propriétés ci-dessus existent, nous pouvons obtenir leurs valeurs avec data["id"] et 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é?

59
Hari krishnan

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

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

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

Object.keys(a).map(function(key){return a[key]})
43
Erel Segal-Halevi

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

Object.values(data)

Au moment de la rédaction de cet article, l'assistance est limitée (FireFox et Chrome).Tous les principaux navigateurs, à l'exception de IE, le supportent maintenant.

Dans ES2015, vous pouvez utiliser ceci:

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

Si vous $ est défini, vous pouvez effectuer une itération.

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

ou

data["id"]
11
user3118220

Je suis désolé que votre question finale n’est pas très claire, mais vous vous trompez dès la première ligne. La variable data est un Object pas un Array

Pour accéder aux attributs d'un objet, c'est assez simple:

alert(data.second);

Mais si cela ne répond pas complètement à votre question, clarifiez-la et envoyez-la en retour.

Merci !

5
Cooshal

Utilisation de lodash_.values(object)

_.values({"id": 1, "second": "abcd"})

[ 1, 'abcd' ]

lodash inclut de nombreuses autres fonctions permettant de manipuler des tableaux, des objets, des collections, des chaînes et plus encore que vous souhaitez avoir été intégrées à JavaScript. (et semblent en fait se frayer un chemin dans la langue).

4
cs01