我需要這個哈希哈希數組轉換
{"peter" => ["apple", "orange", "mango"], "sandra" => ["flowers", "bike"]}
轉換到這個陣列:
[["peter", "apple"], ["peter", "orange"], ["peter", "mango"], ["sandra", "flowers"], ["sandra", "bike"]]
現在我有這個解決方案
my_hash.inject([]){|ar, (k,v)| ar << v.map{|c| [k,c]}}.flatten(1)
但我相信這裏是更優雅與那些zip
或transpose
magick :)解決方案:
托克蘭,這是作弊!他要求'zip'或'轉置'magick! **編輯:**對不起,您在編輯此評論前23秒編輯了它。 – Serabe
@serabe,我認爲fl00r只是提到了一些功能結構,並不是他特別想要一個基於zip的解決方案。我的第二個片段只是爲了好玩,第一個可能更清晰。 – tokland
@Serabe,tokland是對的,我想要更優雅的解決方案:) – fl00r