method
    
    each_with_index
 
  
      v2_1_10 - 
      Show latest stable
 - 
    1 note - 
    Class: Enumerator
    
  
  
- 1_8_6_287
- 1_8_7_72
- 1_8_7_330
- 1_9_1_378 (0)
- 1_9_2_180 (-23)
- 1_9_3_125 (38)
- 1_9_3_392 (0)
- 2_1_10 (0)
- 2_2_9 (0)
- 2_4_6 (0)
- 2_5_5 (0)
- 2_6_3 (0)
- What's this?
each_with_index()
  public
  Same as Enumerator#with_index(0), i.e. there is no starting offset.
If no block is given, a new Enumerator is returned that includes the index.
  
    
      Register or 
      log in
      to add new notes.
  
  
  
  
      
     Rubybull -  
    February  3, 2013 - (v1_9_3_125)
 Rubybull -  
    February  3, 2013 - (v1_9_3_125)
    
  
  
  
       
  
  
  
           Rubybull -  
    February  3, 2013 - (v1_9_3_125)
 Rubybull -  
    February  3, 2013 - (v1_9_3_125)
    
  
    
    0 thanks
     
  
  
  How does enum#each_index differ from enum#with_each_index ?
Here is the working one each_with__index:
a=[11,22,31,224,44].each_with_index { |val,index| puts "index: #{index} for #{val}" if val < 30} index: 0 for 11 index: 1 for 22 => [11, 22, 31, 224, 44]
Below couldn’t produce the output, as with_index couldn’t work on the array.To make it workble, we need to first convert it to enumerator. And that can be done via the help of .to_enum, .each, or .map
a = [11,22,31,224,44].with_index { |val,index| puts "index: #{index} for #{val}" if val < 30} =>NoMethodError: undefined method `with_index' for [11, 22, 31, 224, 44]:Array from (irb):2 from C:/Ruby193/bin/irb:12:in `<main>'
Here is the working one with_index:
a = [11,22,31,224,44].each.with_index { |val,index| puts "index: #{index} for #{val}" if val < 30} index: 0 for 11 index: 1 for 22 => [11, 22, 31, 224, 44]

 RSpec
RSpec Ruby on Rails
Ruby on Rails Ruby
Ruby 
   
   
   = private
 = private = protected
 = protected
   
    