2010/2/26 Giampiero Zanchi <cidza / tin.it>:
> in order to simplify ...
> (0...textlist.length).select {|i| textlist[i] == "Orange"}[1]
>
> David Springer wrote:
>> (0..textlist.length-1).select {|i| textlist[i] == "Orange"}[1]

Interesting approach.  That could also be done with

irb(main):005:0> textlist.size.times.select {|i| textlist[i] == "Orange"}
=> [1, 4, 6]

I have

irb(main):001:0> textlist = ["Apple", "Orange", "Lemon", "Grape",
"Orange", "Melon",
irb(main):002:1* "Orange", "Banana"]
=> ["Apple", "Orange", "Lemon", "Grape", "Orange", "Melon", "Orange", "Banana"]
irb(main):003:0> textlist.each_with_index.partition {|a,i| a ==
"Orange"}.first.map {|a,i| i}
=> [1, 4, 6]

or, even better

irb(main):006:0> textlist.each_with_index.select {|a,i| a ==
"Orange"}.map {|a,i| i}
=> [1, 4, 6]

Hmmm, we could also do

irb(main):007:0> textlist.each_with_index.select {|a,i| a ==
"Orange"}.map(&:last)
=> [1, 4, 6]

This is all very 1.9ish though. ;-)

Kind regards

robert


-- 
remember.guy do |as, often| as.you_can - without end
http://blog.rubybestpractices.com/