我有一个包含这样的子数组的数组:
c= [ a[2], a[6], a[18], a[7], a[0] .....]
我想为自己添加子数组以获得这样的数组:
arr = [[{"big" => "2055", "small" => -"-10", "thin" => "i"},
{"big" => "2785", "small" => "0", "thin" => "l"}],
[{"big" => "7890", "small" => "3", "thin" => "t"},
{"big" => "2669", "small" => "0,5", "thin" => "f"},
{"big" => "9000", "small" => "2", "fat" => "O"}]]
这样做:
arr = [{"big" => "2055", "small" => "-10", "thin" => "i"},
{"big" => "2785", "small" => "0", "thin" => "l"},
{"big" => "7890", "small" => "3", "thin" => "t"},
{"big" => "2669", "small" => "0,5", "thin" => "f"},
{"big" => "9000", "small" => "2", "fat" => "O"}]
我添加了子数组但每个哈希都出现了两次。怎么做对了?
答案 0 :(得分:0)
你想要flatten数组吗?
arr.flatten
如果需要,它会递归地将每个子数组连接成一个大数组。
[[1,2], [3,4]].flatten
# => [1, 2, 3, 4]
如果要修改数组,可以使用:
arr.flatten!
内部元素的外观(整数,字符串,散列)并不重要,只要它们不是数组,它们就不会被flatten
触及
答案 1 :(得分:0)
Ruby有一个内置方法,请尝试使用Array.flatten
答案 2 :(得分:0)
您可以使用flatten!
:
arr.flatten!
#=> [{"big"=>"2055", "small"=>"-10", "thin"=>"i"},
{"big"=>"2785", "small"=>"0", "thin"=>"l"},
{"big"=>"7890", "small"=>"3", "thin"=>"t"},
{"big"=>"2669", "small"=>"0,5", "thin"=>"f"},
{"big"=>"9000", "small"=>"2", "fat"=>"O"}]
答案 3 :(得分:0)
你可以试试这个
arr = arr.flatten