如何将子阵列添加到自身?红宝石

时间:2017-07-05 12:56:46

标签: arrays ruby add sub-array

我有一个包含这样的子数组的数组:

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"}]

我添加了子数组但每个哈希都出现了两次。怎么做对了?

4 个答案:

答案 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