的我有一個大陣列$actor_movie_array
,這是在這樣的方式排序:哈希等效大陣列搜索
[actor1, movie1, movie2, movie3...]
[actor2, movie1, movie2, movie3...]
[actor3, movie1, movie2...]
下面的方法獲取一個參數actor_name
,然後通過$actor_movie_array
搜索actor_name
:
def search by actor(actor_name)
result_array = Array.new
$actor_movie_array.each {
|x| if x[0] == actor_name
result_array = x
result_array.delete_at(0)
break
end
}
return result_array
end
如果找到,它將被推入空數組result_array
,如下所示:
result_array = [actor1, movie1, movie2, movie3...]
然後,我將刪除數組的第一個索引,在這個例子中是actor1
,因爲我只想讓這位演員剩下的電影留在result_array
。
但是,這實在是效率低下。我知道哈希等價物會更有效率,但不知道如何去做。任何人都可以幫助翻譯成哈希等值?
你問的是如何創建一個帶有「actor1」,「actor2」等的散列作爲鍵和電影數組作爲值?這看起來有點簡單,但我不知道如何解釋你的問題。 – Chuck
是的,然後做搜索,如果actor找不到它,它會返回一個空數組。如果演員找到了,它會將該演員的所有電影保存在一個數組中。 – user3260130
'search_by_actor'方法可以替換爲'$ actor_movie_array.assoc(actor_name)'。[(docs)](http://www.ruby-doc.org/core-2.1.0/Array.html#method- i-assoc) – steenslag