gpt4 book ai didi

arrays - 我想将循环的结果存储到数组中

转载 作者:太空宇宙 更新时间:2023-11-03 18:09:03 24 4
gpt4 key购买 nike

我完全是 Ruby 的菜鸟,所以我正在向了解的人学习 :)我确实在寻找这个答案,但徒劳无功......

我想将循环的结果放入一个新数组中。但是我不能...

@angelco_account = ["https://angel.co/unstock", "https://angel.co/groupclip"]

@angelco_account.each do |i|
@twitter_url = []
@twitter_url << Nokogiri::HTML(open("#{i}", "User-Agent" => "Mozilla/5.001(windows; U; NT4.0; en-us) Gecko/25250101")).css('a.twitter_url.icon_link.fontello-twitter')[0]["href"]
puts @twitter_url
end

我的 irb 得到了这个结果

 https://twitter.com/UnStock_Market
https://twitter.com/groupclip
=> ["https://angel.co/unstock", "https://angel.co/groupclip"]

我想把它放在 @twitter_url

["https://twitter.com/UnStock_Market", "https://twitter.com/groupclip"] 

非常感谢您的帮助!

最佳答案

您的代码的主要问题是您在每次迭代 上将@twitter_url 分配给空数组。一般来说,换行:

@angelco_account.each do |i|
@twitter_url = []

到:

@twitter_url = []
@angelco_account.each do |i|

应该可以解决问题。但为此目的,最好使用 Enumerable#each_with_object :

@twitter_url = @angelco_account.each_with_object([]) do |i, memo|
memo << Nokogiri::HTML(open("#{i}", ...).
css('a.twitter_url.icon_link.fontello-twitter')[0]["href"]
end
puts @twitter_url

或者,在这种特殊情况下,Enumerable#map就足够了:

@twitter_url = @angelco_account.map do |account|
Nokogiri::HTML(open("#{i}", ...).
css('a.twitter_url.icon_link.fontello-twitter')[0]["href"]
end
puts @twitter_url

关于arrays - 我想将循环的结果存储到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com