7

私がこのような配列を持っているとしましょう:

["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/"]

私がやりたいのは、この配列内のURLだけを処理することです。これは、常に最初から上に向かってelement[1]いきます。

それ、どうやったら出来るの?

4

5 に答える 5

13

これは、1(2番目の要素)から始まる要素のみを示します。-1は最後の要素を表します

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/"]
于 2012-05-15T11:36:52.227 に答える
11
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/
于 2012-05-15T11:49:03.243 に答える
3

a [1 ..- 1]は、最初の項目が削除された配列を返します。

于 2012-05-15T11:37:41.833 に答える
2

必要な要素を選択するだけではどうでしょうか。

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

または、新しいアレイコピーを不必要に作成したくない場合は、次のようにします。

a.each { |e| 
  next if !e.match(/^http:/)
  ...
}
于 2012-05-15T12:21:03.120 に答える
1

スライスしてみてください:

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)

編集

次のように使用します:

arr.slice(1..-1).each do |p|
  puts p
end
于 2012-05-15T11:46:24.197 に答える