Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Elixir映射中提取值_Elixir - Fatal编程技术网

如何在Elixir映射中提取值

如何在Elixir映射中提取值,elixir,Elixir,假设我有这个 %{ “联系人全名”=>[“简”、“乔”、“工作”], “联系人手机号码”=>[“1234”、“5678”、“9012”], “联系人关系”=>[“兄弟姐妹”、“员工”、“员工”] } 我如何遍历该地图,获得 “简,1234,兄弟姐妹”,“琼斯,5678”,“东西”,等等 试用 Enum.each(联系人,fn{k,v}-> IO.puts(“{k}-->{v}”) (完) 但这产生了 联系人全名-->JaneJoeJob 联系人手机号码-->123456789012 联系人关

假设我有这个

%{
“联系人全名”=>[“简”、“乔”、“工作”],
“联系人手机号码”=>[“1234”、“5678”、“9012”],
“联系人关系”=>[“兄弟姐妹”、“员工”、“员工”]
}
我如何遍历该地图,获得
“简,1234,兄弟姐妹”
“琼斯,5678”,“东西”
,等等

试用

Enum.each(联系人,fn{k,v}->
IO.puts(“{k}-->{v}”)
(完)
但这产生了

联系人全名-->JaneJoeJob
联系人手机号码-->123456789012
联系人关系-->兄弟姐妹关系

您可以使用提取地图值,然后使用以下内容压缩列表值:

联系人详细信息=%{
“联系人全名”=>[“简”、“乔”、“工作”],
“联系人手机号码”=>[“1234”、“5678”、“9012”],
“联系人关系”=>[“兄弟姐妹”、“员工”、“员工”]
}
联系|u details |>Map.values()|>Enum.zip()
这将产生:

[
{“简”、“1234”、“兄弟姐妹”},
{“乔”,“5678”,“东西”},
{“工作”、“9012”、“东西”}
]
但是,请注意,这将返回一个元组列表。您可以使用以下附加步骤将元组转换为列表,以映射和转换元组:

contact\u详细信息
|>Map.values()
|>Enum.zip()
|>枚举映射(&Tuple.to_list/1)
这将产生:

[
[“简”、“1234”、“兄弟姐妹”],
[“乔”,“5678”,“东西”],
[“工作”、“9012”、“东西”]
]

希望这有帮助:)

关于Elixir中
Enum.zip/1
的脚注:如果正在压缩的子列表长度不同,它将在到达最短列表末尾时停止。这与某些语言(例如Python)中的实现一致,但与其他语言(例如Ruby和一些JS库)中的实现不一致。