使用Ruby从循环内添加到数组

时间:2013-08-29 09:28:26

标签: ruby arrays

我在循环中添加数组时遇到一些问题。 它只会将最后的结果添加到数组中并丢失之前的9组。

我想我必须在循环内部创建一个新数组,然后将新数组添加到前一个数组中。我只是不确定我是怎么做的。

array = Array.new

10.times do
  array2 = Array.new
  pagenum = 0
  results = Nokogiri::HTML(open("#{url}#{pagenum}"))
  results.css("div").each do |div|
    array.push div.inner_text
  end
  pagenum + 10
  array.concat(array2)
end

1 个答案:

答案 0 :(得分:2)

您正在提取相同的网页(0)10次。

10.times do
  ...
  pagenum = 0 # <--------
  results = Nokogiri::HTML(open("#{url}#{pagenum}"))
  ...
end

请尝试以下操作:

array = Array.new
10.times do |pagenum|
  results = Nokogiri::HTML(open("#{url}#{pagenum}"))
  array += results.css("div").map(&:inner_text)
end