J'ai l'objet JavaScript suivant:
var obj = {
"key1" : val,
"key2" : val,
"key3" : val
}
Existe-t-il un moyen de vérifier si une clé existe dans le tableau, similaire à celui-ci?
testArray = jQuery.inArray("key1", obj);
ne marche pas.
Dois-je parcourir l'objet comme ceci?
jQuery.each(obj, function(key,val)){}
javascript
jquery
user2065483
la source
la source
obj.has("key1")
fonctionnera si vous utilisez ES6.obj.hasOwnProperty("key1")
au lieu de justehas
?Réponses:
Utilisez l'
in
opérateur :testArray = 'key1' in obj;
Note de bas de page: Ce que vous avez là, ce n'est en fait pas un objet jQuery, mais juste un simple objet JavaScript.
la source
in
comme ça?testArray = !( 'key1' in obj);
?Ce n'est pas un objet jQuery, c'est juste un objet.
Vous pouvez utiliser la méthode hasOwnProperty pour rechercher une clé:
if (obj.hasOwnProperty("key1")) { ... }
la source
var obj = { "key1" : "k1", "key2" : "k2", "key3" : "k3" }; if ("key1" in obj) console.log("has key1 in obj");
=================================================== ========================
Pour accéder à une clé enfant d'une autre clé
var obj = { "key1": "k1", "key2": "k2", "key3": "k3", "key4": { "keyF": "kf" } }; if ("keyF" in obj.key4) console.log("has keyF in obj");
la source
if (!("key1" in obj)) { console.log("no key1 in obj"); }
Les réponses ci-dessus sont bonnes. Mais c'est bien aussi et utile.
!obj['your_key'] // if 'your_key' not in obj the result --> true
C'est bon pour le style court de code spécial dans les instructions if:
if (!obj['your_key']){ // if 'your_key' not exist in obj console.log('key not in obj'); } else { // if 'your_key' exist in obj console.log('key exist in obj'); }
Remarque: Si votre clé est égale à null ou "" votre "if" instruction sera erronée.
obj = {'a': '', 'b': null, 'd': 'value'} !obj['a'] // result ---> true !obj['b'] // result ---> true !obj['c'] // result ---> true !obj['d'] // result ---> false
Donc, la meilleure façon de vérifier si une clé existe dans un obj est:
'a' in obj
la source
Vous pouvez essayer ceci:
const data = { name : "Test", value: 12 } if("name" in data){ //Found } else { //Not found }
la source
map.has(key)
est le dernier moyen ECMAScript 2015 de vérifier l'existence d'une clé dans une carte. Référez-vous à ceci pour plus de détails.la source
le moyen le plus simple est
const obj = { a: 'value of a', b: 'value of b', c: 'value of c' }; if(obj.a){ console.log(obj.a); }else{ console.log('obj.a does not exist'); }
la source
a
est une chaîne vide, zéro ou nulle, elle retournera toujours «obj.a n'existe pas», même si la cléa
existe.