这就是我处理 Ruby 哈希中的值以获得字母数字小写排序输出的方式(极端示例):
myhash = {
"x" => "zebra",
"one" => "1",
"alpeh" => "alpha",
"lower" => "january",
"1" => "January",
"2" => "February",
"answer" => "42"
}
m = myhash.values
puts m.map{|i| i.downcase}.sort
输出:
1
42
alpha
february
january
january
zebra
这工作正常,我没有遇到任何问题,但想知道是否有我缺少的更简单/更有效的方法?
最佳答案
既然你想修改值(输出小写字符串),我认为你不能做得更好。
如果输出原始值是可以的,只要它们排序良好,你可以使用这个:
myhash.values.sort_by{|h|h.downcase}
编辑:感谢 Casper,这是一个更紧凑的版本:
myhash.values.sort_by(&:downcase)
编辑:感谢 Mischa,如果你想保留你提供的输出:
myhash.values.map(&:downcase).sort
关于ruby - 从 Ruby 哈希中排序值,忽略大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11886671/