Подтвердить что ты не робот

Метод ruby ​​sort_by

Я только начал изучать рубин. У меня есть массив хешей. Я хочу иметь возможность сортировать массив на основе элемента в хеше. Я думаю, что я должен использовать метод 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)

Ничего не происходит с массивом. Также нет ошибки.

4b9b3361

Ответ 1

Вы должны сохранить результат:

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