一起过滤和拒绝List的元素

时间:2017-06-24 10:36:13

标签: elixir

我有一个符合条件或不匹配的元素列表。我知道可以使用Enum.filterEnum.reject来获取匹配/不匹配条件的元素列表,但这意味着分别调用这两个方法。

例如,假设一个整数列表(1..10)和一个布尔方法is_even?,我想得到一个列表(或元组)列表整数分组为奇数和偶数:

[[0,2,4,6,8], [1,3,5,7,9]]

我查看了Enum.group_by/3但是它返回了一个带有布尔键的映射,然后必须映射它以将其转换为List或Tuple(并且还会创建键的顺序的不确定性) :

1..10
|> Enum.group_by(&is_even?/1)
|> Enum.map(fn {_, v} -> v end)

#=> [[1, 3, 5, 7, 9], [2, 4, 6, 8, 10]]

我希望有一些更简洁,更清洁的东西,让你一步一步地确定按键顺序。

0 个答案:

没有答案