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 à celle-ci?
testArray = jQuery.inArray("key1", obj);
ne marche pas.
Est-ce que je dois parcourir l'objet comme ça?
jQuery.each(obj, function(key,val)){}
Utilisez l'opérateur in
:
testArray = 'key1' in obj;
Sidenote: Ce que vous avez obtenu ici n'est en réalité pas un objet jQuery, mais simplement un objet JavaScript simple.
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")) {
...
}
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");
Les réponses ci-dessus sont bonnes. Mais c'est bon aussi et utile.
!obj['your_key'] // if 'your_key' not in obj the result --> true
C'est bon pour un style court de code spécial dans les déclarations 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 déclaration "si" sera fausse.
obj = {'a': '', 'b': null, 'd': 'value'}
!obj['a'] // result ---> true
!obj['b'] // result ---> true
!obj['c'] // result ---> true
!obj['d'] // result ---> false
Donc, le meilleur moyen de vérifier si une clé existe dans un obj est: 'a' in obj
map.has(key)
est le dernier ECMAScript 6 moyen de vérifier l’existence d’une clé dans une carte. Reportez-vous à ceci pour plus de détails.
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');
}