我是新来的Ruby和没有与哈希太多经验的数组,我有一个微博名为变量,它是一个哈希这样:如何保存的信息,从哈希未来在Ruby中
{"statuses"=>[{"metadata"=>{"result_type"=>"recent", "iso_language_code"=>"tl"}, "lang"=>"tl"}]}
我想将信息数组作为一个单独的变量保存在数组中。我将如何去做这件事?
我是新来的Ruby和没有与哈希太多经验的数组,我有一个微博名为变量,它是一个哈希这样:如何保存的信息,从哈希未来在Ruby中
{"statuses"=>[{"metadata"=>{"result_type"=>"recent", "iso_language_code"=>"tl"}, "lang"=>"tl"}]}
我想将信息数组作为一个单独的变量保存在数组中。我将如何去做这件事?
如果你有一个哈希像这样:
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)做很多事情,我鼓励您阅读关于它们的文档。
哈希的有2种很不错的方法,
hash.values
hash.keys
你的情况 -
h = {"statuses"=>[{"metadata"=>{"result_type"=>"recent", "iso_language_code"=>"tl"}, "lang"=>"tl"}]}
p h.values
p.keys
每种类型的这些输出数组。这可能是你想要的。
此外,这个问题将很好地关闭。 1谷歌搜索报道了几个哈希到数组问题。
Ruby Hash to array of values
Converting Ruby hashes to arrays
hash.values不起作用,因为它创建了一个新的数组数组。然后我不能有额外的数组 – cmart
循环! :) – sircapsalot
该数组应该看起来像什么? –
应该看起来像: [{“metadata”=> {“result_type”=>“recent”,“iso_language_code”=>“tl”},“lang”=>“tl”}] – cmart
我认为你应该考虑把整个变成另一个..这将比数组简单.. – sethi