marcamillion
marcamillion

Reputation: 33755

How do I start cycling in an array from the 2nd element using each? - Ruby

Say I have an array like this:

["auburn", "http://auburn.craigslist.org/web/", "http://auburn.craigslist.org/cpg/", "http://auburn.craigslist.org/eng/", "http://auburn.craigslist.org/sof/", "http://auburn.craigslist.org/sad/"]

What I would like to do is work on just the URLs in this array - which will always start at element[1] and go up.

How do I do that?

Upvotes: 7

Views: 5784

Answers (5)

Casper
Casper

Reputation: 34308

What about just simply choosing the elements you need:

a.grep(/^http:/).each { ... }

Or if you don't want new array copies to be created unnecessarily:

a.each { |e| 
  next if !e.match(/^http:/)
  ...
}

Upvotes: 2

megas
megas

Reputation: 21791

a = ["auburn", "http://auburn.craigslist.org/web/", "http://auburn.craigslist.org/cpg/", "http://auburn.craigslist.org/eng/", "http://auburn.craigslist.org/sof/", "http://auburn.craigslist.org/sad/"]

a.drop(1).each { |m| puts m }

#=> http://auburn.craigslist.org/web/
#   http://auburn.craigslist.org/cpg/
#   http://auburn.craigslist.org/eng/
#   http://auburn.craigslist.org/sof/
#   http://auburn.craigslist.org/sad/

Upvotes: 11

Vik
Vik

Reputation: 5961

try slice :

arr = ["auburn", "http://auburn.craigslist.org/web/", "http://auburn.craigslist.org/cpg/", "http://auburn.craigslist.org/eng/", "http://auburn.craigslist.org/sof/", "http://auburn.craigslist.org/sad/"]
arr.slice(1..-1)

edit :

use it like :

arr.slice(1..-1).each do |p|
  puts p
end

Upvotes: 1

Andy Waite
Andy Waite

Reputation: 11076

a[1..-1] will return the array with the first item removed.

Upvotes: 3

peter
peter

Reputation: 42182

This only shows the elements starting from 1 (the second element), -1 stands for the last element

a = ["auburn", "http://auburn.craigslist.org/web/", "http://auburn.craigslist.org/cpg/", "http://auburn.craigslist.org/eng/", "http://auburn.craigslist.org/sof/", "http://auburn.craigslist.org/sad/"] 

p a[1..-1]
=> ["http://auburn.craigslist.org/web/", "http://auburn.craigslist.org/cpg/", "http://auburn.craigslist.org/eng/", "http://auburn.craigslist.org/sof/", "http://auburn.craigslist.org/sad/"]

Upvotes: 13

Related Questions