Introduction
Dans ce laboratoire, nous allons explorer comment obtenir des valeurs imbriquées dans des objets JavaScript en utilisant une fonction appelée dig. Cette fonction peut être utilisée pour extraire une valeur spécifique d'un objet imbriqué complexe, facilitant ainsi l'accès aux informations nécessaires. Grâce à ce laboratoire, vous allez apprendre à utiliser l'opérateur in et la méthode reduce() pour parcourir des objets imbriqués et trouver la valeur cible.
Comment obtenir une valeur imbriquée dans un objet JSON
Pour extraire une valeur cible d'un objet JSON imbriqué sur la base d'une clé donnée, suivez ces étapes :
- Ouvrez le Terminal/SSH et tapez
nodepour commencer à pratiquer la programmation. - Vérifiez si la
cibleexiste dans l'objen utilisant l'opérateurin. - Si la
cibleest trouvée, renvoyez la valeur correspondante dans l'obj. - Si la
ciblen'est pas trouvée, utilisezObject.values()etArray.prototype.reduce()pour appeler récursivement la fonctiondigsur chaque objet imbriqué jusqu'à ce que la première paire clé/valeur correspondante soit trouvée.
Voici le code de la fonction dig :
const dig = (obj, target) =>
target in obj
? obj[target]
: Object.values(obj).reduce((acc, val) => {
if (acc !== undefined) return acc;
if (typeof val === "object") return dig(val, target);
}, undefined);
Pour utiliser la fonction dig, créez d'abord un objet JSON avec des niveaux imbriqués, comme ceci :
const data = {
niveau1: {
niveau2: {
niveau3: "quelques données"
}
}
};
Ensuite, appelez la fonction dig avec l'objet JSON et la clé souhaitée :
dig(data, "niveau3"); // 'quelques données'
dig(data, "niveau4"); // undefined
Ces exemples renverront la valeur de la clé niveau3 dans l'objet data et undefined pour la clé inexistante niveau4.
Sommaire
Félicitations ! Vous avez terminé le laboratoire Obtenir une valeur imbriquée dans un objet. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.