Todd Benson wrote: > On Feb 2, 2008 11:05 PM, Todd Benson <caduceass / gmail.com> wrote: >> a.inject(a.first) {|m, e| e < m ? e : m} >> a.each_with_index {|v, i| s_indexes << i if v == a.min} > > > Sorry, these lines are supposed to be... > > smallest = a.inject(a.first) {|m, e| e < m ? e : m} > a.each_with_index {|v, i| s_indexes << i if v <= smallest} > > Todd In Ruby 1.9, finding indexes of all elements which have minimal value is easily done using a new iterator chaining feature: a = 5, 1, 4, 7, 2, 1, 9, 2, 1 min_value = a.min a.each_with_index.inject([]){|accum, (elem, index)| elem == min_value ? accum << index : accum } Output: => [1, 5, 8] Best regards Isidor Nikolic -- Posted via http://www.ruby-forum.com/.