小编Dar*_*uin的帖子

通过Elixir中的多个值进行地图分组

所以我有这张地图

    map = [
             %{id: 2, brand: "TUTU", reference: "1234"}, 
             %{id: 2, brand: "TUTU", reference: "4567"}, 
             %{id: 3, brand: "TOTO", reference: "789456"}
    ]
Run Code Online (Sandbox Code Playgroud)

我想按ID将其分组以获得类似以下内容:

    [
        %{
            id: 2,
            brand: "TUTU",
            reference: [
                 "1234",
                 "5845"
              ]
        },
        %{
             id: 3,
             brand: "TOTO",
             reference: [
                  "4587"
             ]
        }
    ]
Run Code Online (Sandbox Code Playgroud)

我试图用Enum.group_by这样

map
|> Enum.group_by(fn entry -> entry.brand end)
Run Code Online (Sandbox Code Playgroud)

但是结果看起来像这样:

    %{
      "TOTO" => [%{brand: "TOTO", id: 3, reference: "789456"}],
      "TUTU" => [
        %{brand: "TUTU", id: 2, reference: "1234"},
        %{brand: "TUTU", id: 2, …
Run Code Online (Sandbox Code Playgroud)

elixir

0
推荐指数
1
解决办法
169
查看次数

标签 统计

elixir ×1