총인원 10명이서 5명씩 팀을 나누려고 한다. 실력이 비슷한 사람들끼리 가위바위보를 했고, 이긴사람이 0번 index, 진 사람이 1번 index 배열을 만들어 정리했다. 다음 groups 배열을 가지고, 이긴 사람끼리 그리고 진 사람끼리 팀을 나눠 teams 배열을 완성해보자.
let groups = [
['영준', '캡틴'],
['태순', '우재'],
['재훈', '지웅'],
['윤형', '동욱'],
['규식', '소원'],
];
let teams = [
[],
[],
];
[ '영준', '태순', '재훈', '윤형', '규식' ]
[ '캡틴', '우재', '지웅', '동욱', '소원' ]
for(let i = 0; i < groups.length; i++){
for(let j = 0; j < groups[i].length; j++){
teams[j][i] = groups[i][j]
}
}
for(let i = 0; i < groups.length; i++){}
-> 이 for문은 groups의 길이만큼 (rows) 진행하는 각각의 팀에 대한 인덱싱이다.
for(let j = 0; j < groups[i].length; j++){}
-> 이 for문은 배열 안의 각 요소 배열의 길이를 (columns) 나타낸다.
ex)
groups
[(i, j), (i, j)]
['영준', '캡틴'] = [(0,0), (0,1)]
['태순', '우재'] = [(1,0), (1,1)]
['재훈', '지웅'] = [(2,0), (2,1)]
['윤형', '동욱'] = [(3,0), (3,1)]
['규식', '소원'] = [(4,0), (4,1)]
teams
[(j, i), (j, i), (j, i), (j, i), (j, i)]
['영준', '태순' , '재훈', '윤형', '규식']
[(0, 1), (0, 2), (0, 3), (0, 4), (0, 5)]
['캡틴', '우재', '지웅', '동욱', '소원']
[(1, 1), (1, 2), (1, 3), (1, 4), (1, 5)]
위와 같이 groups 2 X 5 배열에서 teams 5 X 2 배열로 바뀌려면 teams[j][i] = groups[i][j] 이렇게 i와 j의 순서를 바꾸어야한다.