我有以下散列:搜索哈希散列內,並返回鍵
{1=>{"label"=>"New", "color"=>"#whatver"}, 2=>{"label"=>"In-progress", "color"=>"#whatever"}, 3=>{"label"=>"Closed", "color"=>"#whatever"}}
而且我有一個數組,如:['New', 'In-progress']
我需要從一個數組返回鍵[1, 2]
那個散列。
我所做的嘗試:
labels = ['New', 'In-progress']
labels.map { |label| statuses.detect { |hash| hash.second[:label] == label }.first }
# => [1, 2]
哪個是正確的,我想確切的事情,但是否有這樣做的更直接的方式?
當你舉一個例子,請分配給每個輸入值的變量(例如,'H = {1 => ... }'和'arr = ['New'...]'),這樣讀者就可以在註釋和回答中引用這些變量而無需定義它們。 –
我不是那麼做嗎? –
我不知何故弄錯了。我很抱歉。但是,你不認爲當你第一次提到這兩個對象時,分配這些變量會更好嗎?如果你這樣做了,你就不必重複這個數組,並且'statuses'的含義是明確的。 –