Menu
Coddy logo textTech

Vérifier si une clé existe

Fait partie de la section Logique & Flux du Journey JavaScript de Coddy — leçon 16 sur 65.

Pour vérifier la présence d'une clé spécifique dans un objet JSON, utilisez soit l'opérateur in, soit hasOwnProperty(). Par exemple :

const product = { "name": "Laptop", "price": 900 };
if ("price" in product) {
  console.log("Key exists!");
}

if (product.hasOwnProperty("price")) {
  console.log("Key exists!");
}

C'est pratique pour vérifier si certaines données sont présentes avant le traitement.

obj.hasOwnProperty("key") retournera false si obj n'a pas key comme sa propre propriété. Cependant, obj.key === undefined ne signifie pas nécessairement que hasOwnProperty("key") retournera false. Il existe deux cas où obj.key est undefined :

  • La propriété n'existe pas du tout → hasOwnProperty("key") retourne false.
  • La propriété existe mais a une valeur de undefinedhasOwnProperty("key") retourne true.

Par exemple :

const obj1 = {};  
console.log(obj1.key); // undefined
console.log(obj1.hasOwnProperty("key"));
// false

const obj2 = { key: undefined };
console.log(obj2.key); // undefined
console.log(obj2.hasOwnProperty("key"));
// true
challenge icon

Défi

Facile

Créez une fonction appelée toggleBookStatus qui prend un objet book comme paramètre. La fonction doit :

  1. Si le book possède une propriété isRead qui est true, changez-la en false
  2. Si le book possède une propriété isRead qui est false, changez-la en true
  3. Si le book ne possède pas de propriété isRead, ajoutez-la et définissez-la sur true
  4. Retournez l'objet book modifié

Aide-mémoire

Pour vérifier la présence d'une clé spécifique dans un objet JSON, utilisez l'opérateur in ou hasOwnProperty() :

const product = { "name": "Laptop", "price": 900 };

// Utilisation de l'opérateur 'in'
if ("price" in product) {
  console.log("Key exists!");
}

// Utilisation de hasOwnProperty()
if (product.hasOwnProperty("price")) {
  console.log("Key exists!");
}

hasOwnProperty() renvoie true si la propriété existe (même si sa valeur est undefined), et false si la propriété n'existe pas :

const obj1 = {};  
console.log(obj1.hasOwnProperty("key")); // false

const obj2 = { key: undefined };
console.log(obj2.hasOwnProperty("key")); // true

Essayez vous-même

function toggleBookStatus(book) {
    // Écrivez votre code ici
}
// N'écrivez rien en dehors de la fonction
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux