【发布时间】:2014-08-06 21:36:16
【问题描述】:
我有一个数组,它必须按从低到高的顺序排序,然后按字母顺序排列。必须使用数组#sort_by
i_want_dogs = ["I", "want", 5, "dogs", "but", "only", "have", 3]
我希望它输出:
=> [3,5,"I","but","dogs","have","only","want"]
我试过了:
i_want_dogs.sort_by {|x,y| x <=> y }
我知道这显然是错误的,但我无法将整数和字符串结合起来。
【问题讨论】:
-
你看过Enumerable#sort_by的文档吗?
-
愚蠢的问题,但你需要它们在字符串和整数中吗? :D
-
我做到了,但仍然无法弄清楚。我在想也许我必须将整数转换为 chr,然后将所有内容转换为数字并像块内的那样对其进行排序,或者类似的东西,但我无法正确使用语法。
-
@limelights - 是的,我需要它完全如上所示输出
-
有趣的是,大写字母 I 在其他单词之前。
i_want_dogs.sort_by { |x, y| y.to_i <=> x.to_i }应该让你非常接近,但“我”在最后。