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é?
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;
}
}
Si vous voulez le faire en une seule ligne, essayez:
Object.keys(a).map(function(key){return a[key]})
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])
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"]
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 !
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).