Zum leichteren Authoring ich meine Hash wie folgt zu schreiben:einen Hash mit Array-Invertierung Werte
h = {
:key1: [:val1, :val2, :val3],
:key2: [:val4, :val5, :val6]
}
Aber überall Ich benutze es mir den Schlüssel mit einem Wert zugeordnet nachschlagen muß. Zur Zeit mache ich folgendes es zu transformieren:
h = Hash[*{
:key1: [:val1, :val2, :val3],
:key2: [:val4, :val5, :val6]
}.map {|key, vals| vals.map {|val| [val, key]}}.flatten]
Was gibt mir, was ich will:
{ :val1 => :key1, :val2 => key1, :val3 => key1, :val4 => key2, :val5 => :key2, :val6 => :key2 }
Aber gibt es einen einfacheren Weg, um das gleiche Ziel zu erreichen?
* + 1 * viel besser .. :) –
Ich denke, es ist eine lesbare und effiziente Lösung im Vergleich zu anderen –
Nizza. Vielen Dank. – Johnsyweb