var list = [];
for (var i = 1; i<= 45; i++) {
list.push(i);
}
//배열에서 인덱스의 값 제거
var result= [];
for (var i = 0; i<6; i++) {
var index = Math.floor(Math.random() * list.length);
//랜덤으로 선택한 인덱스의 값
var num= list[index];
//배열에서 인덱스의 값 제거
list.splice(index, 1);
result.push(num);
}
console.log('결과', result);
for (var i = 1; i<= 45; i++) {
list.push(i);
}
//배열에서 인덱스의 값 제거
var result= [];
for (var i = 0; i<6; i++) {
var index = Math.floor(Math.random() * list.length);
//랜덤으로 선택한 인덱스의 값
var num= list[index];
//배열에서 인덱스의 값 제거
list.splice(index, 1);
result.push(num);
}
console.log('결과', result);
로또번호 생성기 단원인데요. 이해가 안되는 부분이 있어서요.
변수 list 에서 1~45 값을 저장했고 인덱스로는 0~44까지 할당이 됩니다.
그렇기 때문에 변수 index에는 0~44까지의 값을 저장하여 list splice(index, 1); 로 변수 list의 인덱스에 해당하는 값을 제거합니다.
여기까지 이해는 했는데 제가 궁금한건
var num= list[index];이면 0~44까지의 값을 저장한 값일텐데, 왜 이 값을 리스트에 넣어서 결과값으로 보여주는지 모르겠습니다.
저는 0~44까지의 값만 보여준다고 이해가 되는데 실제로는 아니여서요.
어떻게 이해를 해야할까요??
리스트 내의 숫자를 또 사용할일이 있나보져
아 결과값으로 1~ 45 를 보여줘야 하는데 왜 0~ 44 값을 결과값으로 보여주는지 모르겠다가 요지였는데 설명이 모자랐네요 ㅠ
i = 1부터 시작하니까 0번인덱스에 1을넣음 - dc Cpp
아 ㅠㅠ 그걸 염두해두니까 이해가 되네요.
처음엔 이해했었는데 시간이 지나니까 어떻게 이해했었는지 까먹었음요 ㅠ
list[i]에 들어있는 값은 i + 1임. 본문에서는 i라고 생각해서 0~44를 넣는다고 여김. 사실 1~45를 넣어주는거임. - dc Cpp
감사합니다.
0~44는 인덱스값이요. list[index]에 들어갈 인덱스. 배열은 [0]부터 시작해서 [n-1]까지 잖아요. list[0]==1, list[1]=2 .... list[44]==45
감사합니다. list[index];를 그렇게 이해를 했어야 했는데 헷갈렸군요 ㅠㅠ