基本上,我想在传递值时同时将变量/值添加到数组或哈希变量/值中.
TL;DR - 我不想复制粘贴变量名称并编写 N 行代码
array_name << var
array_name << another_var
...
array_name << last_var
--我写了这个。
def describe_card(card_url)
=begin
Parse card.php?id=<ID> into array.
=end
@card_array = Array.new
# http://blog.noort.be/2011/02/12/nokogiri-scraping-with-cookies.html
@card_page = open(card_url, 'Cookie' => 'city=3')
@card_doc = Nokogiri::HTML(@card_page)
@company_id = URI(card_url).query.split('id=')[1]
@company_name = @card_doc.css('.company_name')
@company_site = @card_doc.css('.company_site')['href']
@company_character = @card_doc.css('.company_character')
@company_description = @card_doc.css('.company_description p')
@company_ads_quantity = @card_doc.css('.ads_name').length
@company_office_name = @card_doc.css('#filial_name_view')
@company_office_address = @card_doc.css('#filial_address_view')
@company_ymap_link = @card_doc.css('.ymaps-logo-link ymaps-logo-link-ru')
@card_array
end
@card_array
为空。我需要填满它。我可以用<<
或#push
的方法写 9 行,但有些事情告诉我它不是那么出色。
这个数组可能会与ad_array
连接,并将入到all_ad_array
中。第一次将结果写入CSV对我来说就足够了。也许我不确定要使用什么 - 数组或哈希。(最终数组/哈希中大约有 6000 行/行。你也可以建议我应该使用sqlite或一些新的NoSQL数据库。
我记得有一个很好的例子可能使用#map
方法。无论如何,我真的希望你们中的某个人会建议我在这种情况下如何编写更好和优雅的代码。谢谢。
我在那里问,因为如果我再次开始阅读Ruby Book,那将是2-3天或大约一周。但我想写这段代码,因为实践是最好的老师。
值分配给实例变量的同时向数组添加值,例如:
@card_array << @company_name = @card_doc.css('.company_name')
您可以将push
与 splat 运算符一起使用
array_name.push *array_of_vars
例如:
> [1, 2, 3].push *[4, 5]
=> [1, 2, 3, 4, 5]