相关疑难解决方法(0)

基于某些元素中可能为零的属性对数组进行排序

我有一个对象数组

[<#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)

ruby arrays sorting heterogeneous-array

18
推荐指数
2
解决办法
7044
查看次数

标签 统计

arrays ×1

heterogeneous-array ×1

ruby ×1

sorting ×1