代码之家  ›  专栏  ›  技术社区  ›  cjm2671

灵丹妙药

  •  0
  • cjm2671  · 技术社区  · 6 年前

    我有一张地图清单:

    [%{~D[2019-02-11] => 7},
     %{~D[2019-02-12] => 1},
     %{~D[2019-02-15] => 1}]
    

    我想把它变成一张大地图:

    my_map
    |> Enum.map_reduce(%{}, fn x, acc ->
       Map.merge(x, acc)
    end )
    

    但是,唉,这并不完全正确。正确的方法是什么?

    0 回复  |  直到 6 年前
        1
  •  4
  •   Aleksei Matiushkin    6 年前

    你不需要 Enum.map_reduce/3 用普通的旧货 Enum.reduce/2 :

    [%{~D[2019-02-11] => 7},
     %{~D[2019-02-12] => 1},
     %{~D[2019-02-15] => 1}]
    |> Enum.reduce(&Map.merge/2)
    #⇒ %{~D[2019-02-11] => 7,
    #    ~D[2019-02-12] => 1,
    #    ~D[2019-02-15] => 1}