您如何获取字符串列表,例如
["jeff", "bezos", "21"]
并将其映射到结构
%{:fistname => "jeff", :lastname => "bezos", :age => "21"}
是否可以使用Enum功能,或者您是否可以使用地图功能。我需要以指定格式使用此结构,以便我可以将其发送到数据库
答案 0 :(得分:4)
我假设每次字符串都是相同的顺序?
然后你可以模式匹配:
[firstname, lastname, age] = array
%{:fistname => firstname, :lastname => lastname, :age => age}
如果列表包含3个以上的元素:
[firstname, lastname, age | _] = array
%{:fistname => firstname, :lastname => lastname, :age => age}
答案 1 :(得分:4)
您可以使用值列表压缩键列表,然后将其传递给Map.new/1
:
iex(1)> Enum.zip([:firstname, :lastname, :age], ["jeff", "bezos", "21"]) |> Map.new
%{age: "21", firstname: "jeff", lastname: "bezos"}