按第n个字符按字母顺序排列列表

时间:2015-07-13 16:28:19

标签: ruby

  

编写一个接受两个参数的函数,i)一个字符串(包含一个单词列表)和ii)一个整数(n)。该函数应根据每个单词的第n个字母按字母顺序排列。

我试过了

def sort_it(list_, n)
  list_.sort_by {|name| name[n]}
end

但是说sort_by无法识别。

有没有一种优雅的方法来解决这个问题?

1 个答案:

答案 0 :(得分:4)

list_是字符串,而sort_byEnumerable的方法。您需要在排序之前将字符串转换为单词集合。一种方法是

list_.split

所以你的代码看起来像

def sort_it(list_, n)
  list_.split.sort_by {|name| name[n]}
end

作为旁注,请勿在参数名称中使用尾随下划线。