답변 2개 / 댓글 2개
채택된 답변
+20 포인트
우선 다음처럼 ty배열을 정의하고 테스트 했는데요
Copy
var ty = [1,1,3,3,5,5,6,7,8,1,2,4,5,64,90,99,99];
for (var floor = 1; floor <= 1; floor++) {
for (var b = 1 + 6 * (floor - 1); b <= 6 * floor; b++) {
for (var c = b + 1; c <= 6 * floor; c++) {
var number = Math.floor(Math.random() * (45)) + 1;
if (ty[b] == ty[c]) {
ty[b] = number; //[b];
c = b; //중복 발생하면 그 순서를 다시 실행해야하니까 다시 선언해줌.
}
}
}
}
console.log(ty);
콘솔 결과는 [1, 1, 3, 3, 4, 17, 5, 6, 7, 8, 1, 2, 4, 5, 64, 90, 99, 99] 로 인덱스 4,5번째에 중복되어 있는 값 5,5이 없어지고 대신 17,5으로 바뀝니다.
개발자님이 제시한 for문 로직을 보면 인덱스 1부터 6까지만 중복값을 따집니다.
배열은 인덱스 0부터 시작됩니다.
어째든 for문의 시작과 끝 점이 의도적이라면 로직은 정상이라고 봐도 되겠습니다.
하지만 ty배열 전체의 중복성을 따지려면 시작점을 0부터 시작해야 할것 같구 끝점도 ty배열의 길이값인 ty.length로설정해야 할것 같아요.
답변을 작성하려면 로그인이 필요합니다.