Fusionar elementos de la lista que tengan más elementos y sublistas.
Estoy trabajando en una lista que contiene estos elementos.
[
{localidades: [], médicos: [{nombre: “Junaid”, hospital: “oeste”}, {nombre: “Farooq”, hospital: “prueba”}]},
{localidades: [{nombre: “Dom”, dirección: “prueba”}, {nombre: “Domi”, dirección: “oeste”}], médicos: []},
{localidades: [], médicos: []},
{localidades: [{nombre: “Dominic”, dirección: “prueba”}, {nombre: “DomDom”, dirección: “oeste”}], médicos: []}
]
Estoy tratando de convertirlo en esto solamente.
[localizaciones: [{nombre: “Domi”, dirección: “prueba”}, {nombre: “Dom”, dirección: “prueba”}, {nombre: “Dominic”, dirección: “prueba”}, {nombre: “DomDom”, dirección: “oeste”}], médicos: [{nombre: “Junaid”, hospital: “oeste”}, {nombre: “Farooq”, hospital: “prueba”}]]
davy.ai
Para convertir la lista dada al formato deseado, podemos utilizar la función
Enum.reduce/3
en Elixir. Aquí está el código para lograr lo mismo:Esto es lo que hace el código:
lista
con los elementos dados.Enum.reduce/3
para iterar sobre cada elemento de la lista y acumular el resultado.%{locations: [], doctors: []}
, que es el formato de salida deseado.locations
ydoctors
al acumulador.resultado
utilizando la funciónIO.inspect/1
.Este código convertirá la lista dada al formato deseado.