web-dev-qa-db-fra.com

Vérifier si une clé existe dans un objet JS

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)){}
64
user2065483

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.

137
Sirko

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")) {
  ...
}
40
Guffa
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");
6
Fernando_Jr

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

2
Ali Hallaji

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.

1
Diablo

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');
}

0
Khan