Dla ułatwienia authoringu Piszę mój hash tak:Odwracanie hash z tablicy wartości
h = {
:key1: [:val1, :val2, :val3],
:key2: [:val4, :val5, :val6]
}
Ale wszędzie używam to muszę patrzeć klawisz odpowiadający wartości. Obecnie robię co następuje aby ją przekształcić:
h = Hash[*{
:key1: [:val1, :val2, :val3],
:key2: [:val4, :val5, :val6]
}.map {|key, vals| vals.map {|val| [val, key]}}.flatten]
co daje mi to, co chcę:
{ :val1 => :key1, :val2 => key1, :val3 => key1, :val4 => key2, :val5 => :key2, :val6 => :key2 }
Ale czy istnieje prostszy sposób, aby osiągnąć ten sam cel?
* + 1 * znacznie lepiej .. :) –
Myślę, że jest to czytelne i wydajne rozwiązanie w porównaniu do innych –
Nice. Dziękuję Ci. – Johnsyweb