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 } };
}, {});