在Elixir中合并具有数组值的地图

ram*_*ein 3 elixir

你好,我有这个数组

temp=[%{"a"=>1},%{"b"=>2}]

total=%{"c"=>3,"d"=>4}

我如何添加临时总值,所以我结束

total=%{"a"=>1,"b"=>2,"c"=>3,"d"=>4}

Gaz*_*ler 9

您可以将列表中的所有total值用作Enum.reduce/3Map.merge/2的初始值.

Enum.reduce(temp, total, fn (map, acc) -> Map.merge(acc, map) end)
Run Code Online (Sandbox Code Playgroud)

返回:

%{"a" => 1, "b" => 2, "c" => 3, "d" => 4}
Run Code Online (Sandbox Code Playgroud)

  • 如果键不冲突,并且您想要覆盖现有键,您还可以使用`Enum.map`和`Enum.into` (2认同)