hey folks,

  came across (what i consider) a strange difference between iterating
through an array with #each and #each_index - maybe someone can explain
this?

  i'm working on a baseball scorecard, that splits a string up into an
array, and then searches for keywords like "out," "single," "homer,"
etc.  here's a simplified example that demonstrates what is confusing to
me:

#####
string = "Joe struck out looking blah blah Bill out at second blah blah"
array = string.split

array.each{|entry|
  p array.index(entry) if entry == "out"
}
puts
array.each_index{|index|
  p index if array[index] == "out"
}
#####

  i expected both ways of iterating through the array to give the same
results (2 and 7,) but they don't - what's returned is:

=> 2
=> 2

=> 2
=> 7

  why the heck does #each return 2 twice, instead of returning 2 and 7
like #each_index does?  am i missing something obvious here?  thanks in
advance for any help...

 - j

-- 
Posted via http://www.ruby-forum.com/.