我有一个这样的数组:
array = ['john', 'jennifer', 'kristen', 'ted']
我想将其转换为k个元素的数组数组,对于k = 2,结果应为:
[['john', 'jennifer'], ['kristen', 'ted']]
是否可以在一行中这样做?
答案 0 :(得分:14)
each_slice
可能有所帮助:
array.each_slice(2).to_a
#=> [["john", "jennifer"], ["kristen", "ted"]]
答案 1 :(得分:2)
如果你想用一个带谓词的表达式创建两个数组(一个表达式,其值为true或false),我建议partition
array.partition{ |name| name[0] == 'j' }
#=> [["john", "jennifer"], ["kristen", "ted"]]