Hash na array

Witam

Mam takiego hasha

{"20"=>"0", "3"=>"1", "4"=>"0", "10"=>"0", "21"=>"1", "5"=>"0"}

są to pary id, value

Jak zmienić to na tablice która będzie zawierała tylko te id których value = 1?
Jest na to jakaś sprytna szybka metoda czy skakać po hashu sprawdzać czy value = 1, a jeżeli tak to
dodawać id do tablicy?

Pozdrawiam

chyba tylko skakać :wink: :

h={"20"=>"0", "3"=>"1", "4"=>"0", "10"=>"0", "21"=>"1", "5"=>"0"} h.collect { |k,v| k if v == "1" }.compact

a może skorzystać z delete_if / reject ?

Można, ale l0pez chce jeszcze to przerobić na tablicę kluczy.

Albo tak:

h.keys.find_all {|k| h[k] == "1"}