Comment faire pour convertir un tableau d'objets à un objet dans Lodash?
J'ai ceci:
[ { list:
[ [Object],
[Object] ] },
{ head:
[ [Object],
[Object] ] }
]
Et veux le transformer en ceci:
{ list:
[ [Object],
[Object] ],
head: [ [Object],
[Object] ]
}
Donc un tableau d'objets dans un objet. Il serait bon d'y parvenir avec lodash.
Je ne sais rien à propos de Java ou lodash, mais si vous avez fait des recherches, il peut vraiment vous aider si vous le partager! 😉
OriginalL'auteur Stefan | 2015-05-13
Vous devez vous connecter pour publier un commentaire.
OriginalL'auteur djaszczurowski
Je pense encore plus courte, la solution serait:
Je sais que vous avez demandé pour lodash, mais il ne semble pas comme vous avez besoin même de cette façon. Sauf si vous souhaitez utiliser
_.extend
.OriginalL'auteur rcsole
Voici une version plus courte:
La transformer() fonction est comme réduire(), sauf que c'est pas vous attend pour retourner quoi que ce soit. Depuis étendre() est en train de modifier, c'est le premier argument, il nous suffit de passer directement à
transform()
. Il est enveloppé dans ary() pour s'assurer qu'il n'obtient que 2 arguments transmis.OriginalL'auteur Adam Boduch
De construire sur @rcsole de la grande réponse, cela fonctionne bien:
Résultat:
Ce qui se passe ici?
Nous allons briser en plusieurs morceaux:
Étape 1 utilise
map
pour itérer sur chaque élément du tableau (chaque état de l'objet).map
exécute une fonction pour chaquestate
objet et retourne un nouvel objet avec l'état tant que la clé et le nom de la valeur. Nous avons besoin de nous entourerstate.state
entre parenthèses parce que c'est une valeur dynamique dans un objet littéral.L'étape 2 utilise
Object.assign
pour fusionner tous les nouveaux objets d'état dans lemappedStates
tableau en un nouvel objet (le premier paramètre,{}
).Quels sont les trois points
...
? C'est la propagation de l'opérateur. Il prend chaque élément dans lemappedStates
tableau et les transforme en direct arguments de laObject.assign
méthode.Cet exemple, il est clair:
est le même que
Que c'est!
OriginalL'auteur Johannes Fahrenkrug
Utilisation fromPairs sur lodash 4. https://lodash.com/docs#fromPairs
_.fromPairs([['fred', 30], ['barney', 40]]);
OriginalL'auteur udnisap