我有一个对象数组
[<#a star=1 val=1>, <#a star=nil val=3> , <#a star=2 val=2>]
Run Code Online (Sandbox Code Playgroud)
我需要按时间排序数组,然后按val排序
[ <#a star=2 val=2>, <#a star=1 val=1>, <#a star=nil val=3> ]
Run Code Online (Sandbox Code Playgroud)
但是使用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
Run Code Online (Sandbox Code Playgroud)