From: Bil Kleb Date: 2009-07-02T21:20:19+09:00 Subject: delete_if_with_index or delete_at(array) in 1.8.6? Hi, Given an array of integers, I need to delete all those entries that are lower than the current array index. I first thought of the non-existent, array.delete_if_with_index{ |e,i| e < i } then, remove_indices = [] array.each_with_index{ |e,i| remove_indices << i if e < i } array.delete_at( remove_indices ) or the same, but with a fictious inject_with_index, remove_indices = inject_with_index([]){|acc,e,i| acc << i if e < i } array.delete_at( remove_indices ) and finally the 1.9 possibility, array.map_with_index!{ |e,i| e < i ? nil : e }.compact! before compromising with array = (0...array.size).zip(array).map{ |i,e| e < i ? nil : e }.compact Anything more elegant available? Or perhaps an alternative way to attack the problem? Thanks, -- http://twitter.com/bil_kleb http://fun3d.larc.nasa.gov