按ruby中数组的元素属性排序

gka*_*kck 8 ruby arrays sorting

我有一个从自定义类创建的对象数组.自定义类有一些属性,我想通过其中一个属性对数组进行排序?有没有一种简单的方法在ruby上实现它,或者我应该从头开始编码?

例:

class Example
  attr_accessor :id, :number

  def initialize(iid,no)
    @id = iid
    @number = no
  end
end

exarray = []
1000.times do |n|
  exarray[n] = Example.new(n,n+5)
end
Run Code Online (Sandbox Code Playgroud)

在这里,我想通过其elements number属性对exarray进行排序.

Nik*_*bak 16

sort_by可能是最短的选择

exarray.sort_by {|x| x.number}
Run Code Online (Sandbox Code Playgroud)

这也有效

exarray.sort_by &:number
Run Code Online (Sandbox Code Playgroud)