0
votes

Comment créer un objet de hasch à l'aide de Lodash Keyby?

hi j'ai des données d'école comme ceci: xxx

J'ai besoin de créer un hachage avec l'identifiant de l'école comme couleur clé et école comme valeur xxx

i m avec lodash xxx

Cependant, la sortie a toujours l'objet entier en valeur au lieu de montrer une valeur de couleur.

Comment réaliser id et couleur comme valeur clé du hachage?


0 commentaires

3 Réponses :


2
votes

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


0 commentaires

0
votes

Utiliser .foreseach code> ou .Reduce code>

p>

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)


0 commentaires

1
votes

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


0 commentaires