Per facilità di authoring che sto scrivendo il mio hash come questo:Inversione un hash con array di valori
h = {
:key1: [:val1, :val2, :val3],
:key2: [:val4, :val5, :val6]
}
Ma ovunque io usarlo ho bisogno di cercare la chiave associata con un valore. Attualmente sto facendo la seguente per trasformarla:
h = Hash[*{
:key1: [:val1, :val2, :val3],
:key2: [:val4, :val5, :val6]
}.map {|key, vals| vals.map {|val| [val, key]}}.flatten]
che mi dà quello che voglio:
{ :val1 => :key1, :val2 => key1, :val3 => key1, :val4 => key2, :val5 => :key2, :val6 => :key2 }
Ma c'è un modo più semplice per raggiungere lo stesso obiettivo?
* + 1 * molto meglio .. :) –
Penso che sia una soluzione leggibile ed efficiente rispetto ad altri –
Nice. Grazie. – Johnsyweb