如果我有两个值,如何将它们中的每一个推送到数组中的同一行? - Ruby

时间:2012-05-10 18:33:45

标签: ruby

所以我正在使用Nokogiri解析页面并存储这样的值:

contents[link[:href]] = content_page.css("p a")
copy = content_page.xpath('//p/text()[1]').text

然后我在他的my_listing数组上推送它们:

my_listing << contents[link[:href]]
my_listing << copy

但是,它的作用是为每个条目创建一个2元素数组。

因此contents[link[:href]]存储在my_listing[0]copy存储在my_listing[1]

然而,我想要发生的是,my_listing[0][0] == contents[link[:href]]&amp;&amp; my_listing[0][1] == copy

我该怎么做?

2 个答案:

答案 0 :(得分:5)

我建议你做一行:

my_listing << [ contents[link[:href]], copy ]

答案 1 :(得分:0)

我猜contents是哈希?

如果是这样,只需使用Hash#to_a方法即可制作出您想要的数组。

{'a' => 123, 'b' => 456}.to_a
#=> [["a", 123], ["b", 456]]

contents = {}
contents['http://google.com'] = 'Its a google!'
contents['http://yeahoo.com'] = 'Like yahoo, but with some yeah!'

my_listing = contents.to_a

puts my_listing[0][0] #=> http://google.com
puts my_listing[0][1] #=> Its a google!