我是編程新手,正在使用Ruby來熟悉語法和控制流。查找散列數組中的所有最大值,然後存儲在單獨的數組中Ruby
我正在製作的節目要求我放置具有最長播放時間的DVD名稱。這裏是我的代碼:
dvds = [
{
:dvd_name=>"x-men",
:dvd_playing_time=>549,
:times_played=>9.0
},
{
:dvd_name=>"Pi",
:dvd_playing_time=>549,
:times_played=>6.0
}
]
兩個哈希有549
dvd_playing_time
,所以我想在存儲陣列都"x-men"
和"Pi"
。我試過max_by
,但它只返回一個dvd_name
。
dvds.max_by { |length| length[:dvd_playing_time]}[:dvd_name]
任何幫助你可以提供的是太棒了!
因爲有些讀者,尤其是那些英文是第二語言的讀者,可能認爲你指的是':times_played',所以製作關鍵字':dvd_length':dvd_playing_time'會更清楚。另外,使兩個哈希的':times_played'的值不同會更好。 –
Cary Swoveland,謝謝你的建議。我會修改我的符號,使之更清晰。 – aprogrammer
我編輯:dvd_length到:dvd_playing_time並且也改變了:times_played值不同。 – aprogrammer