我有此數組:拒絕哈希的內容,如果他們不在陣
array = ["1", "2", "3", "4"]
我有這個數組哈希:
ah = [
{:id=>"1", :value=>"A"},
{:id=>"2", :value=>"B"},
{:id=>"3", :value=>"C"},
{:id=>"4", :value=>"D"},
{:id=>"5", :value=>"E"},
{:id=>"6", :value=>"F"},
{:id=>"7", :value=>"G"},
{:id=>"8", :value=>"H"},
]
我需要拒絕ah
其ID的哈希值不在array
。
達到此目的的最佳方法是什麼?
這聞起來像一個XY問題。我會重新考慮使用這種結構。相反,使用':id'值作爲鍵與相關的':value'值構建一個簡單的哈希值作爲值。那麼使用'ah.keys - array'可以很容易地讓密鑰被拒絕。它會非常快。但是更快的時候就是使用'ah.values_at(* values)'來提取所需的值。如果可能存在重複的鍵,這會中斷,但允許關聯值的數組可以修復這個問題。 –