96 votes

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, comme ceci ?

testArray = jQuery.inArray("key1", obj);

ne fonctionne pas.

Dois-je itérer dans l'objet comme ceci ?

jQuery.each(obj, function(key,val)){}

189voto

Sirko Points 32515

Utilisez le in opérateur :

testArray = 'key1' in obj;

Remarque : ce que vous avez là n'est en fait pas un objet jQuery, mais un simple objet JavaScript.

53voto

Guffa Points 308133

Ce n'est pas un objet jQuery, c'est juste un objet.

Vous pouvez utiliser la méthode hasOwnProperty pour vérifier la présence d'une clé :

if (obj.hasOwnProperty("key1")) {
  ...
}

8voto

Fernando_Jr Points 38
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");

5voto

Ali Hallaji Points 991

Les réponses ci-dessus sont bonnes. Mais celle-ci est également bonne 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');
}

Note : Si votre clé est égale à null ou "", votre instruction "if" 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, la meilleure façon de vérifier si une clé existe dans un objet est : 'a' in obj

1voto

Diablo Points 293

map.has(key) est le dernier ECMAScript 2015 moyen de vérifier l'existence d'une clé dans une carte. Reportez-vous à ce qui suit pour plus de détails.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X