테스트 사이트 - 개발 중인 베타 버전입니다

자바스크립트 중복질문이요!! 채택완료

주니준이 4년 전 조회 1,966

 

중복 피하게 할려고 하는데 어디가 잘못된걸까요???

for문 구조는 고치지 말고 해주세요...

 

ty배열에는 랜덤으로 숫자를 넣어났습니다.

ty배열 일대일대응으로 체크해서 중복 값이 나오면 중복 값 랜덤 값 넣어주고 다시 체크해줍니다.

제가 의도한거랑 코드가 잘못된거 같은데 도와주십쇼

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

답변 2개

채택된 답변
+20 포인트
s
4년 전

우선 다음처럼  ty배열을 정의하고 테스트 했는데요

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);</p>

<p>
콘솔 결과는 [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개

주니준이
4년 전
ty배열설정도 1부터 해서요;;

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

주니준이
4년 전
바쁘시겠지만 코드 한번만 짜주시겠어요?

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

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

로그인