Ruby为Enumerable提供了这个非常棒的方法group_by。 Elixir有类似的东西吗?我在Enum模块上找不到此功能。谢谢
答案 0 :(得分:4)
还没有。我们还没有添加它,因为我们正在等待地图。它将被添加到v0.13分支。 :)
*更新*
对于那些没有注意到以下评论的人,现在已经添加了。
答案 1 :(得分:3)
以下是Enum模块中group_by/3的示例。
根据字符串的长度对字符串数组进行分组:
iex(12)> ["ant", "buffalo", "cat", "dingo"] |> Enum.group_by(&String.length/1)
%{3 => ["cat", "ant"], 5 => ["dingo"], 7 => ["buffalo"]}
来自文档:
根据 fun 将集合拆分为组。
结果是一个dict(默认情况下是一个地图),其中每个键都是一个组,每个值都是来自集合的元素列表,其中fun返回该组。订购不一定保留。