Вы можете извлечь значения карты с помощью Map.values/1
, а затем сжать значения списка с помощью Enum.zip/1
:
contact_details = %{
"contact_full_name" => ["Jane", "Joe", "Job"],
"contact_mobile_number" => ["1234", "5678", "9012"],
"contact_relationship" => ["sibling", "stuff", "stuff"]
}
contact_details |> Map.values() |> Enum.zip()
Это дает:
[
{"Jane", "1234", "sibling"},
{"Joe", "5678", "stuff"},
{"Job", "9012", "stuff"}
]
Однако обратите внимание, что это возвращает список кортежей.Вы можете преобразовать кортежи в списки с дополнительным шагом для отображения и преобразования кортежей с помощью Tuple.to_list/1
:
contact_details
|> Map.values()
|> Enum.zip()
|> Enum.map(&Tuple.to_list/1)
, что дает:
[
["Jane", "1234", "sibling"],
["Joe", "5678", "stuff"],
["Job", "9012", "stuff"]
]
Надеюсь, это поможет:)