我有一个对象数组
[<#a star=1 val=1>, <#a star=nil val=3> , <#a star=2 val=2>]
我需要按时间排序数组,然后按 val
[ <#a star=2 val=2>, <#a star=1 val=1>, <#a star=nil val=3> ]
但是使用 sort_by 会引发错误,因为时间为零。
我现在正在使用一种丑陋的方式进行排序,但我相信有一个很好的方法来解决它
starred=[]
@answers.each {|a| (starred << a) if a.starred }
@answers=@answers-starred
starred=starred.sort_by {|a| a.starred }.reverse
@answers=starred+@answers