elixir Enum或任何其他模块是否具有类似于ruby的group_by的group_by函数

时间:2014-02-16 23:11:19

标签: elixir

Ruby为Enumerable提供了这个非常棒的方法group_by。 Elixir有类似的东西吗?我在Enum模块上找不到此功能。谢谢

2 个答案:

答案 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返回该组。订购不一定保留。