我试图将一个名称数组推到二维数组中。当二维数组遇到4个条目时,添加到数组的下一个位置。例如:推到二维数组
groups[0]
[
[0] "bobby",
[1] "tommy",
[2] "johnny",
[3] "brian"
]
groups[1]
[0] "christina",
[1] "alex",
[2] "larry",
[3] "john"
]
下面是我试图做到这一点,它不工作。我知道有可能是一些内置的功能,红宝石,将自动完成这个过程,但我想它首先手动写出来:提前
def make_group(the_cohort)
y=0
x=1
groups=[]
the_cohort.each do |student|
groups[y].push student
x+=1
y+=1 && x=1 if x==4
end
end
感谢。使用Ruby 2.1.1p73
这不是一个二维数组,Ruby没有那些(除非你'Matrix')。这只是一个数组的数组。 – 2014-10-29 01:59:38
Enumerable#each_slice,由@ChrisHeald提到,是专门为此任务制作的,但还有其他方法可以完成此任务。这里有一个:'(0 ... arr.size).step(4).map {| i | arr [i,4]}'。 – 2014-10-29 03:24:45