将数组转换为数组数组

时间:2016-02-29 13:46:02

标签: arrays ruby

我有一个这样的数组:

array = ['john', 'jennifer', 'kristen', 'ted']

我想将其转换为k个元素的数组数组,对于k = 2,结果应为:

[['john', 'jennifer'], ['kristen', 'ted']]

是否可以在一行中这样做?

2 个答案:

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