Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 如何向自身添加子阵列?红宝石_Arrays_Ruby_Add_Sub Array - Fatal编程技术网

Arrays 如何向自身添加子阵列?红宝石

Arrays 如何向自身添加子阵列?红宝石,arrays,ruby,add,sub-array,Arrays,Ruby,Add,Sub Array,我有一个包含如下子数组的数组: arr = [[{"big" => "2055", "small" => -"-10", "thin" => "i"}, {"big" => "2785", "small" => "0", "thin" => "l"}], [{"big" => "7890", "small" => "3", "thin" => "t"}, {"big" => "2669",

我有一个包含如下子数组的数组:

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"}]
arr.map! {|x| x+x}
我想向其自身添加子阵列,以获得如下数组:

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"}]
arr.map! {|x| x+x}
这样做:

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"}]
arr.map! {|x| x+x}
我添加了子数组,但每个哈希出现两次。如何正确操作?

您是否只想使用阵列

arr.flatten
它将每个子数组连接成一个大数组,如果需要,可以递归地连接

[[1,2], [3,4]].flatten
# => [1, 2, 3, 4]
如果要在位修改阵列,可以使用:

arr.flatten!

内部元素(整数、字符串、散列)的外观无关紧要,只要它们不是数组,它们就不会被
flatten

您可以使用:

arr.flatten!
arr.flant!
#=>[{“大”=>“2055”,“小”=>“-10”,“薄”=>“i”},
{“大”=>“2785”,“小”=>“0”,“薄”=>“l”},
{“大”=>“7890”,“小”=>“3”,“薄”=>“t”},
{“大”=>“2669”,“小”=>“0,5”,“薄”=>“f”},
{“大”=>“9000”,“小”=>“2”,“胖”=>“O”}]
您可以试试这个

arr = arr.flatten

即使它们是数组,
flatte
也接受一个
level
参数:)
[[1[2]]、[3[4]]#⇒ [1、[2]、3、[4]
@mudasobwa:是的,但我本应该结束这个问题而不是回答它。