채택완료

자바스크립트 중복질문이요!!

|

답변 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로설정해야 할것 같아요.
 

답변에 대한 댓글 1개

ty배열설정도 1부터 해서요;;

추출 할때마다 배열에 넣으시고 재귀 함수에서 비교 후 하면 될 것 같네요

답변에 대한 댓글 1개

바쁘시겠지만 코드 한번만 짜주시겠어요?

답변을 작성하려면 로그인이 필요합니다.