我試圖將一個名稱數組推到二維數組中。當二維數組遇到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