Если у вас есть Hash так:
hash = {:numbers => [1,2,3,4]}
И вам нужно, чтобы захватить массив в новую переменную. Вы можете просто получить доступ к ключу и назначить его на новую переменную следующим образом:
one_to_five = hash[:numbers]
Однако, обратите внимание, что новая переменная фактически содержит массив, который находится в хэш. Таким образом, изменение массива hash изменяет массив новой переменной.
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), и я бы посоветовал вам прочитать документацию по ним.
Какой должен быть массив? –
должен выглядеть так: [{"metadata" => {"result_type" => "recent", "iso_language_code" => "tl"}, "lang" => "tl"}] – cmart
Думаю, вам стоит подумать сплющивание целого в другое .., это будет проще, чем массив. – sethi