Voglio verificare se un hash ha una chiave che contiene del testo. Potrebbe non essere la chiave esatta, ma la chiave deve contenere (come il .include?
) il testo. La mia soluzione è:Controllare se hash ha una chiave che contiene del testo
some_hash.select {|k,v| k.include? "foo"}.empty?
Ma questo genererà un altro hash. Voglio solo verificare l'esistenza della chiave. C'è un modo migliore per farlo?
Fantastico! Grazie! –
Quello medio non funziona, in quanto assegna un array chiave/valore a "chiave", e quindi ottieni Array.include ?, non String.include ?, che non esegue la corrispondenza parziale. Un rapido controllo dei tempi suggerisce che il tuo ultimo modo, che condivido sia più leggibile, è anche leggermente più veloce del tuo primo modo. –
@glenn mcdonald: Ah! Che sarebbe stato un array k/v è stato il mio primo istinto, ma a causa di un felice incidente il mio caso di test ha funzionato :) Modificato, grazie/+ 1! – jtbandes