hi j'ai des données d'école comme ceci: J'ai besoin de créer un hachage avec l'identifiant de l'école comme couleur clé et école comme valeur p> i m avec lodash p> Cependant, la sortie a toujours l'objet entier en valeur au lieu de montrer une valeur de couleur. P> Comment réaliser id et couleur comme valeur clé du hachage? p> p>
3 Réponses :
Lodash Keyby ne peut pas être la meilleure solution pour votre cas d'utilisation, vous pouvez plutôt utiliser le Array.Reduce Méthode:
action.payload.reduce((accumulator, currentValue) => { accumulator[currentValue.id] = currentValue.details.colour; return accumulator; }, {});
Utiliser p> .foreseach code> ou
.Reduce code>
var data = [
{
"details": {
"campus": [
{
"address": "115-119...",
"campusName": "blah",
"email": "blah",
}
],
"colour": "#640E27",
"schoolCode": "8383"
},
"enrolled": true,
"id": "8383"
}
];
var res = {};
data.forEach(({id, details})=>{
res[id] = details.colour
});
console.log(res);
//Reduce
var res2 = data.reduce((acc, {id, details})=>{
return {...acc, ...{[id]:details.colour}}
}, {});
console.log(res2)
Vous pouvez essayer ce code, Array.Reduce est capable de faire le même travail.
let arr = [ { details: { campus: [ { address: '115-119...', campusName: 'blah', email: 'blah', }, ], colour: '#640E27', schoolCode: '8383', }, enrolled: true, id: '8383', }, ]; const reducedHash = arr.reduce((acc, data) => { return { ...acc, ...{ [data.id]: data.details.colour } }; }, {});