0
我想獲得一個哈希值,其中有一個數值反轉的數組,這樣的鍵就是現在的值。從這樣的表達式:反轉哈希:從一個數組中創建多個哈希鍵
StackOverflow.transform({ 1 => ['A', 'E'] , 2 => ["B"]})
我想要得到這樣的結果:
{"A"=>1, "E"=>1, "B"=>2}
我有這樣的:
class StackOverflow
def self.transform(old)
a = Hash[old.map { |k,v| v.product([k]) }.first]
end
end
但按鍵都分開,單獨密鑰(未分組)。它返回:
{"A"=>1, "E"=>1}
我也試圖downcase的鑰匙,但我覺得我以後正確地找出這種倒掛的問題,我就可以(希望?)弄不清downcasing邏輯以及。
我喜歡@標誌的使用'flat_map'的,但另一種選擇是,以取代'first'用'壓平(1)'。 –
這是一個http://stackoverflow.com/questions/7513730/hash-invert-in-ruby的重複,儘管它可能值得離開,因爲@MarkThomas比我在前面的問題中看到的有更好的答案嗎? – Sid
這與@Sid非常相似,但不幸的是,我無法找到對我來說合情合理的好答案。謝謝你把它留下。不幸的是我得到了一個投票(可能是因爲這個) - 但我向人們保證,在發佈問題之前儘可能合理地搜索StackO。 –