如何在Ruby 1.9.2中将一个级别数组拆分为多个数组

Ame*_*mer 2 ruby ruby-on-rails

我有这样一个数组:

[234,235,343,445]

我想把它转换成这样的样子

[[234],[235],[343],[445]

ruby 1.9.2中是否有核心库函数可以帮助我快速完成这项工作?如果不是有快速的方法?


我做了一个小测试

def test1
  array = []
  10000000.times do
    array << rand(1000000)
  end
  time = Time.now
  array.permutation(1).to_a
  puts "test1 (permutation) ---> Time = #{Time.now - time}"
end

def test2
  array = []
  10000000.times do
    array << rand(1000000)
  end
  time = Time.now
  array.zip()
  puts "test2 (zip)---> Time = #{Time.now - time}"
end

def test3
  array = []
  10000000.times do
    array << rand(1000000)
  end
  time = Time.now
  array.map { |a| [a] }
  puts "test3 (map) ---> Time = #{Time.now - time}"
end

test1 #test1 (permutation) ---> Time = 2.235128
test2 #test2 (zip)         ---> Time = 1.537088
test3 #test3 (map)         ---> Time = 2.230127
Run Code Online (Sandbox Code Playgroud)

Nic*_*not 5

我不认为有一个核心功能,但有一个快速的方法:

irb(main):001:0> [234, 235 , 343, 445].map { |a| [a] }
=> [[234], [235], [343], [445]]
Run Code Online (Sandbox Code Playgroud)