私のハッシュの配列では:
data = [{:bool => true, :val => 5}, {:bool => false, :val => 9}, {:bool => true, :val => 1}]
データを反復処理して、値の配列のみを取得したいと思います。できます:
data.map{|x| x[:val] if x[:bool]}
戻り値:
[5, nil, 1]
ただし、このメソッドでは、nil 値を取り除くために追加の .compact 呼び出しが必要です。
これを達成するためのより良い方法はありますか?