Introduction
Dans ce laboratoire, nous allons explorer la manière d'inverser les paires clé-valeur d'un objet sans modifier l'objet original. Nous utiliserons la méthode Object.keys() et Array.prototype.reduce() pour inverser l'objet. De plus, nous apprendrons à appliquer une fonction aux clés inversées et à retourner un tableau de clés responsables de la génération de la valeur inversée.
Fonction pour inverser un objet
Pour inverser les paires clé-valeur d'un objet sans modifier l'objet original, utilisez la fonction invertKeyValues.
Appelez la fonction en tapant
invertKeyValues(obj, fn)dans le Terminal/SSH, oùobjest l'objet à inverser etfnest une fonction optionnelle à appliquer à la clé inversée.Les méthodes
Object.keys()etArray.prototype.reduce()sont utilisées pour créer un nouvel objet avec des paires clé-valeur inversées, et si une fonction est fournie, elle est appliquée à chaque clé inversée.Si
fnest omise, la fonction renvoie seulement les clés inversées sans aucune fonction appliquée à elles.La fonction renvoie un objet avec chaque valeur inversée étant un tableau de clés responsables de la génération de la valeur inversée.
const invertKeyValues = (obj, fn) =>
Object.keys(obj).reduce((acc, key) => {
const val = fn ? fn(obj[key]) : obj[key];
acc[val] = acc[val] || [];
acc[val].push(key);
return acc;
}, {});
Utilisation de l'exemple :
invertKeyValues({ a: 1, b: 2, c: 1 }); // { 1: [ 'a', 'c' ], 2: [ 'b' ] }
invertKeyValues({ a: 1, b: 2, c: 1 }, (value) => "group" + value);
// { group1: [ 'a', 'c' ], group2: [ 'b' ] }
Résumé
Félicitations ! Vous avez terminé le laboratoire Invert Object. Vous pouvez pratiquer d'autres laboratoires dans LabEx pour améliorer vos compétences.