在Elixir Lang中对List元素进行排序

时间:2015-06-03 17:50:37

标签: elixir

我有一个字符串列表,我想以两种方式订购。

  1. 按字母顺序
  2. 按字符串长度

1 个答案:

答案 0 :(得分:33)

要按字母顺序对字符串列表进行排序,您只需使用Enum.sort/1,它将按默认顺序(字符串的字母顺序)对项目进行排序。

iex> Enum.sort(["b", "aaa", "cc"])
["aaa", "b", "cc"]

要按不同的属性(例如字符串长度)对列表进行排序,可以使用Enum.sort_by/2,它将mapper函数作为第二个参数。然后,这些值将按照应用于每个元素的此函数的结果进行排序。

iex> Enum.sort_by(["b", "aaa", "cc"], &String.length/1)
["b", "cc", "aaa"]