迭代地从每个/ do块中使用哈希填充数组,这给了我所有的重复值.帮助!

Sim*_*nMD 0 ruby arrays iteration hash block

我试图通过每个循环创建的哈希填充哈希数组,如果我在迭代中打印每个单独的哈希它们是不同的,但是当我尝试将它们推送到数组时,结果数组的最后一个哈希重复了次数.这是代码:

def get_tweets
  tweet_array = Array.new
  tweet = {}
  Twitter::Search.new('Accidente' || 'accidente').from('sttmed').each do |r|
    tweet["texto"] = r.text
    tweet["reportado"] = (Time.parse(r.created_at)).localtime.strftime("%B %d, %H:%M %p %Z")
    tweet["direccion"] = r.text.scan(/\w*_\w*/).join
    tweet_array << tweet
  end
  return tweet_array # RETURNS ALL REPEAT VALUES!!
end
Run Code Online (Sandbox Code Playgroud)

我到处寻找,但我似乎无法找到我做错的事情(这可能是一个愚蠢的问题,但这是对这个初学者的困扰......)我会感激任何帮助!

Yul*_*liy 7

tweet创建了一个哈希值,它的值只是被覆盖了.你应该tweet = {}在循环内部分配.