5
A
回答
19
使用sort_by
array.sort_by{|e| e.something}
或
sort_lambda = lambda{|e| e.something}
array.sort_by(&sort_lambda)
有了后者,你可以重复使用在其他sort_by陈述
5
在Rails,或者说用的ActiveSupport,或Ruby 1.9的sort_lambda(可能是1.8.7,不确定)你可以使用新的快捷热度:
array.sort_by(&:something)
请注意,sort_by
可能很昂贵(并且可能有益:它取决于排序键复杂性)副作用:它为每个项目生成并存储一个临时键值对,以便它可以按新键排序。有关详细信息,请参见discussion in the documentation。
5
+1双方的Eimantas的建议,但我常常有这样的过程中出现的情况下,我有一个自定义类总是种种这样,像专辑应该排序不区分大小写的,忽略了导致标点符号和/一/一个。对于该用途,计算排序值一次更有效,然后相应地重新定义< =>。例如:
class Album
def sort_value
@sv ||= @name.downcase.sub(/^\W*(the|an|a) /,"")
end
def <=>(other)
sort_value <=> (other.sort_value rescue other)
end
end
0
您是否考虑过在类a和b中包含Comparable,然后调用sort?
相关问题
- 1. PHP简单数组排序
- 2. 简单数组排序
- 3. 排序数组的数组中的Ruby
- 4. 在ruby中排序数组的语法
- 5. 简单的数组排序和大写
- 6. 用简单的代码填充数组
- 7. 用于SQS请求签名的最简单的Ruby代码?
- 8. 简单的Ruby代码没有运行
- 9. 在ruby中对数组进行排序
- 10. 高级数组在Ruby中排序
- 11. 数组排序,不是简单的排序
- 12. 停滞在LearnStreet Ruby培训。简单的Ruby代码第5课
- 13. 在Windows中从ruby代码弹出指令的最简单方法是什么?
- 14. 排序ruby数组updated_at
- 15. 简单的排序在Ruby中没有使用排序方法(注意,要排序的名单是“字符串”)
- 16. 简单的PHP数组按照子数组键排序
- 17. 最简单的连接(交集)代码
- 18. PHP代码来排序数组.....
- 19. Ruby数组优化代码
- 20. 在Rails中实现简单排序/搜索的最佳方式
- 21. Java代码简单数学
- 22. 如何将单词数组排序为Ruby中的字符串数组?
- 23. 找到两个排序数组的交集 - 如何简化我的代码
- 24. 如何排序在Ruby中的数组中的字符串
- 25. LMAX Disruptor最简单实际的代码示例代码
- 26. 在Python中实现“最简单的协议”伪代码算法
- 27. 最简单的方式在云中运行Python代码
- 28. C#排错中最简单的LINQ
- 29. 排序在Ruby中
- 30. 在gwt中,计算celltable中行总数的最简单代码是什么?
是的,Ruby 1.8.7的符号#to_proc。 – Chuck 2009-09-16 15:26:10
如果array.sort_on(:something)也起作用,那会很好。 – tadman 2009-09-16 18:06:09
实现它很简单:'def sort_on(property)sort_by&property end' – Chuck 2009-09-16 20:22:29