Vérifier si la clé existe dans l'objet en JavaScript
- Utiliser la méthode d’accès direct à l’élément pour vérifier si la clé de l’objet existe en JavaScript
-
Utilisez l’opérateur
in
pour vérifier si la clé objet existe ou non en JavaScript -
Utilisez la méthode
hasOwnProperty
pour vérifier si la clé de l’objet existe ou non en JavaScript -
Utiliser la bibliothèque
underscore
pour vérifier si la clé de l’objet existe ou non en JavaScript
Dans ce tutoriel, nous apprendrons à vérifier si la clé existe en JavaScript en utilisant plusieurs moyens.
Utiliser la méthode d’accès direct à l’élément pour vérifier si la clé de l’objet existe en JavaScript
Si une clé existe, elle ne doit pas retourner undefined
. Pour vérifier si elle renvoie undefined
ou non, nous avons un accès direct aux clés, et cela peut se faire dans deux styles, le style object
, et le style d’accès aux parenthèses.
Dans l’exemple suivant, nous allons montrer comment vérifier si la clé existe par un accès direct à la clé en utilisant le style des crochets.
let myObject = {'mykey1': 'My Value 1', 'mykey2': 'My Value 2'};
function isKeyExists(obj, key) {
if (obj[key] == undefined) {
return false;
} else {
return true;
}
}
let result0 = isKeyExists(myObject, 'mykey0')
console.log('Check for the non-existing key, is key exists > ' + result0)
let result1 = isKeyExists(myObject, 'mykey1')
console.log('Check for the existing key, is key exists > ' + result1)
Production :
Check for the non-existing key, is key exists > false
Check for the existing key, is key exists > true
L’autre style pour vérifier l’existence de la clé par accès direct est le style object
. Dans l’exemple suivant, nous pouvons voir comment vérifier l’existence de cette clé en JavaScript.
let myObject = {mykey1: 'My Value 1', mykey2: 'My Value 2'};
let result = myObject.mykey0 != undefined
console.log('Is myKey0 exists ? ' + result)
let result1 = myObject.mykey1 != undefined
console.log('Is myKey1 exists ? ' + result1)
Production:
Is myKey0 exists ? false
Is myKey1 exists ? true
Un des inconvénients de la vérification de l’existence de la clé undefined
en utilisant l’accès direct est que la valeur de la clé peut être égale à undefined
. Voyons l’exemple suivant pour montrer le problème que pose cette méthode.
let myObject = {mykey0: undefined, mykey1: 'My Value 1'};
let result = myObject.mykey0 != undefined
console.log('Is myKey0 exists? ' + result)
let result1 = myObject.mykey1 != undefined
console.log('Is myKey1 exists? ' + result1)
Production :
Is myKey0 exists? false
Is myKey1 exists? true
La solution du cas ci-dessus est de ne jamais assigner undefined
à une propriété quand vous voulez l’initialiser avec une valeur indéfinie, mais de l’initialiser avec null
à la place.
Si nous insistons sur l’utilisation de la valeur undefined
pour initialiser les clés, nous devrions utiliser l’opérateur in
, la méthode hasOwnProperty
, ou la méthode underscore
de la bibliothèque _.has
.
Utilisez l’opérateur in
pour vérifier si la clé objet existe ou non en JavaScript
L’opérateur in
est simplement utilisé pour retourner false
si la clé n’a pas été trouvée dans l’objet cible et retourne true
si elle a été trouvée.
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
function isKeyExists(obj, key) {
return key in obj;
}
console.log(
'Does language key exists? ' + isKeyExists(myObject, 'language'))
console.log(
'Does nationality key exists? ' + isKeyExists(myObject, 'nationality'))
Production :
Does language key exists? true
Does nationality key exists? false
Utilisez la méthode hasOwnProperty
pour vérifier si la clé de l’objet existe ou non en JavaScript
Une autre façon de vérifier si l’objet contient ou non une clé de propriété spécifique est d’utiliser la méthode hasOwnProperty
. Dans l’exemple suivant, nous allons montrer comment utiliser la méthode hasOwnProperty
.
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
function isKeyExists(obj, key) {
return obj.hasOwnProperty(key);
}
console.log(
'Does the object have language key? ' +
isKeyExists(myObject, 'language'))
console.log(
'Does the object have nationality key? ' +
isKeyExists(myObject, 'nationality'))
Production :
Does the object have language key? true
Does the object have nationality key? false
Utiliser la bibliothèque underscore
pour vérifier si la clé de l’objet existe ou non en JavaScript
Si nous utilisons déjà une des méthodes de la bibliothèque underscore
, nous pouvons utiliser la méthode _.has()
, car elle renvoie true
si cet objet a la clé fournie et renvoie false
sinon.
let myObject =
{favoriteDish: 'Spaghetti', language: 'English'}
console.log(
'Check using underscore library if the object has language key? ' +
_.has(myObject, 'language'))
console.log(
'Check using underscore library if the object has nationality key? ' +
_.has(myObject, 'nationality'))
Production :
Check using underscore library if the object has language key? true
Check using underscore library if the object has nationality key? false
Nous pouvons importer la bibliothèque depuis ici.