Reputation: 33755
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
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
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
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
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