From: William James Date: 2007-05-04T04:50:05+09:00 Subject: Re: Array to Hash On May 3, 11:41 am, Josselin wrote: > is it possible to convert easily an Array like this one : > > [ nil, "b", nil, nil, nil , "f", "g", nil, nil, "j"] > > to an Hash like this one > > { 1 => "b", 5 => "f", 6 => "g", 9 => "j" } > > where the key is the position of a value if not nil .. ? We don't need no stinkin' loops! >> a=[ nil, "b", nil, nil, nil , "f", "g", nil, nil, "j"] => [nil, "b", nil, nil, nil, "f", "g", nil, nil, "j"] >> h=Hash[*(0...a.size).zip(a).reject{|x|x[1]==nil}.flatten] => {5=>"f", 6=>"g", 1=>"b", 9=>"j"}