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")retournefalse. - La propriété existe mais a une valeur de
undefined→hasOwnProperty("key")retournetrue.
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"));
// trueDéfi
FacileCréez une fonction appelée toggleBookStatus qui prend un objet book comme paramètre. La fonction doit :
- Si le book possède une propriété
isReadqui est true, changez-la en false - Si le book possède une propriété
isReadqui est false, changez-la en true - Si le book ne possède pas de propriété
isRead, ajoutez-la et définissez-la sur true - 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")); // trueEssayez vous-même
function toggleBookStatus(book) {
// Écrivez votre code ici
}
// N'écrivez rien en dehors de la fonctionCette 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
1Les chaînes de caractères en profondeur
Fondamentaux des chaînesParcourir les chaînesTemplate LiteralsMéthodes des chaînesRécapitulatif - String Weaver4JSON Partie 2
Itérer sur du JSONJSON imbriquéChaînage optionnel JSONCopie superficielle et profondeRécapitulatif - Magasin de vélosRécapitulatif - Système solaire7Système de gestion de bibliothèque
Présentation du projetAjouter des livres2Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliers (Jagged Arrays)Tableaux 3D et au-delàModèles courants de tableaux 2DRécapitulatif - Tout sur les tableaux3JSON Partie 1
Qu'est-ce qu'un JSON ?Vérifier si une clé existeMéthodes d'objetL'opérateur Spread Partie 1L'opérateur Spread Partie 2Supprimer des clésRécapitulatif - Manipuler les clés JSON