我是 ruby 新手,对哈希没有太多经验,我有一个名为 tweets 的变量,它是这样的哈希:
{"statuses"=>[{"metadata"=>{"result_type"=>"recent", "iso_language_code"=>"tl"}, "lang"=>"tl"}]}
我想将信息数组保存为数组中的单独变量。我该怎么办?
Hash 有 2 个非常好的方法,
hash.values
hash.keys
在你的情况下 -
h = {"statuses"=>[{"metadata"=>{"result_type"=>"recent", "iso_language_code"=>"tl"}, "lang"=>"tl"}]}
p h.values
p.keys
每种类型的这些输出数组。这可能是你想要的。
此外,这个问题将很好地结束。1 Google 搜索报告了几个 Hash to Array SO 问题。
如果你有这样的哈希:
hash = {:numbers => [1,2,3,4]}
您需要将数组捕获到一个新变量中。您可以访问密钥并将其分配给一个新变量,如下所示:
one_to_five = hash[:numbers]
但是,请注意,新变量实际上保存了散列中的数组。所以改变散列的数组会改变新变量的数组。
hash[:numbers] << 6
puts one_to_five #=> [1,2,3,4,5,6]
如果使用dup
,它将创建数组的副本,因此它将是两个单独的数组。
one_to_five = hash[:numbers].dup
hash[:numbers] << 6
puts one_to_five #=> [1,2,3,4,5]
所以,在你的情况下:
hash = {'statuses' => [{"metadata"=>{"result_type"=>"recent", "iso_language_code"=>"tl"}, "lang"=>"tl"}]}
new_array = hash['statuses'].dup
然而,看看你希望用你的代码完成什么,或者至少获得更多的上下文会很有趣,因为这可能不是你最终目标的最佳方法。您可以使用Arrays和Hashes(以及Enumerable )做很多事情,我鼓励您通读有关它们的文档。