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:是的,但我本应该结束这个问题而不是回答它。