Lentes parciales: agrupe la matriz de objetos por propiedad, use el valor de apoyo como clave
Tengo una serie de objetos como este:
[
{ name: "Group 1", value: "Foo" },
{ name: "Group 2", value: "Bar" },
{ name: "Group 1", value: "Baz" }
]
Me gustaría usarLentes parciales biblioteca para transformar estos grupos en claves de un objeto con los elementos del grupo correspondiente, de esta manera:
{
"Group 1": [
{ name: "Group 1", value: "Foo" },
{ name: "Group 1", value: "Baz" }
],
"Group 2": [
{ name: "Group 2", value: "Bar" }
]
}
Mi enfoque actual es así, suponiendo que tenga los datos de origen en una variable llamadadata
:
const grouped = L.collect([L.groupBy('name'), L.entries], data)
const setKey = [L.elems, 0]
const getName = [L.elems, 1, 0, 'name']
const correctPairs = L.disperse(setKey, L.collectTotal(getName, grouped), grouped)
L.get(L.inverse(L.keyed), correctPairs)
No me gusta, necesito usar elgrouped
ycorrectPairs
variables para contener datos, ya que probablemente debería poder hacer la transformación directamente en la composición. ¿Podría ayudarme a componer la misma funcionalidad de una manera más significativa?
Aquí está un Zona de juegos de lentes parciales con el código anterior.