이름 배열을 2D 배열로 푸시하려고합니다. 2D 배열이 4 개의 항목에 도달하면 배열의 다음 위치에 추가합니다. 예를 들면 다음과 같습니다.2D 배열로 푸시
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
미리 감사드립니다. 되는 각 학생이 groups
의 마지막 항목을 살펴 보겠습니다 들어
groups = [[]]
the_cohort.each do |student|
groups.push [] if groups.last.length == 4
groups.last.push student
end
(: 코드에서
1. If the last array in groups has 4 entries, add another array to groups
2. Push the entry into the last array in groups
: 루비 2.1.1p73를
이
, 루비는 그 (당신이 계산되지 않는'Matrix')를 가지고 있지 않습니다. 그것은 단지 배열의 배열입니다. –
@ChrisHeald에서 언급 한 열거 형 # each_slice가이 작업을 위해 특별히 제작되었지만 다른 방법이 있습니다. 여기에 하나 :'(0 ... arr.size) .step (4) .map {| i | arr [i, 4]}'. –