Introduction
Dans ce laboratoire, nous allons explorer comment utiliser la fonction deepMapKeys en JavaScript pour mapper de manière récursive les clés d'un objet. Nous apprendrons à créer un nouvel objet avec les mêmes valeurs et les clés mappées en utilisant une fonction fournie pour chaque clé. Grâce à des exercices pratiques et des exemples, nous comprendrons comment cette fonction fonctionne et comment elle peut être utilisée dans des scénarios pratiques.
Deep Map Object Keys
Pour mapper de manière récursive les clés d'un objet, suivez ces étapes :
- Ouvrez le Terminal/SSH et tapez
nodepour commencer à pratiquer la programmation. - Utilisez la fonction
deepMapKeysavec l'objet fourni et une fonction qui génère de nouvelles clés. - La fonction crée un objet avec les mêmes valeurs que l'objet fourni et des clés générées en exécutant la fonction fournie pour chaque clé.
- Itérez sur les clés de l'objet à l'aide de
Object.keys(). - Créez un nouvel objet avec les mêmes valeurs et les clés mappées à l'aide de
Array.prototype.reduce()et de la fonction fournie. - Si une valeur est un objet, appelez
deepMapKeysde manière récursive sur elle pour mapper également ses clés.
const deepMapKeys = (obj, fn) =>
Array.isArray(obj)
? obj.map((val) => deepMapKeys(val, fn))
: typeof obj === "object"
? Object.keys(obj).reduce((acc, current) => {
const key = fn(current);
const val = obj[current];
acc[key] =
val !== null && typeof val === "object"
? deepMapKeys(val, fn)
: val;
return acc;
}, {})
: obj;
Voici un exemple d'utilisation de deepMapKeys :
const obj = {
foo: "1",
nested: {
child: {
withArray: [
{
grandChild: ["hello"]
}
]
}
}
};
const upperKeysObj = deepMapKeys(obj, (key) => key.toUpperCase());
/*
{
"FOO":"1",
"NESTED":{
"CHILD":{
"WITHARRAY":[
{
"GRANDCHILD":[ 'hello' ]
}
]
}
}
}
*/
Summary
Félicitations! Vous avez terminé le laboratoire Deep Map Object Keys. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.