25

私はルビーを学び始めたばかりです。ハッシュの配列があります。ハッシュ内の要素に基づいて配列をソートできるようにしたい。sort_byメソッドを使用できるはずだと思います。誰か助けてもらえますか?

#array of hashes
array = []
hash1 = {:name => "john", :age => 23}
hash2 = {:name => "tom", :age => 45}
hash3 = {:name => "adam", :age => 3}
array.push(hash1, hash2, hash3)
puts(array)

これが私のsort_byコードです:

# sort by name
array.sort_by do |item|
    item[:name]
end
puts(array)

アレイには何も起こりません。エラーもありません。

4

3 に答える 3

43

結果を保存する必要があります。

res = array.sort_by do |item|
    item[:name]
end 
puts res

または、アレイ自体を変更します。

array.sort_by! do |item| #note the exclamation mark
    item[:name]
end 
puts array
于 2013-01-01T20:24:45.093 に答える