Vérifier si la clé existe dans l'objet en JavaScript

Moataz Farid 12 octobre 2023
  1. Utiliser la méthode d’accès direct à l’élément pour vérifier si la clé de l’objet existe en JavaScript
  2. Utilisez l’opérateur in pour vérifier si la clé objet existe ou non en JavaScript
  3. Utilisez la méthode hasOwnProperty pour vérifier si la clé de l’objet existe ou non en JavaScript
  4. Utiliser la bibliothèque underscore pour vérifier si la clé de l’objet existe ou non en JavaScript
Vérifier si la clé existe dans l'objet 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.

Article connexe - JavaScript Object