예제-랜덤으로 이름 정렬

imjingu·2023년 7월 25일
0

개발공부

목록 보기
208/481
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <title>Document</title>
    <script>
        /*
        listTrans의 조건
        인덱스는 0~16, 중복되면 안됨, 4명씩 랜덤, 1조는 5명
        */

        $(function() {
            const listOri = ['김하나', '이하나', '이철진', '아무나', '서보게',
                            '이거나', '먹어라', '서효성', '프레스', '스미스', 
                            '아이리', '가나다', '라라라', '스쿼트', '힘들다',
                            '빙빙빙', '아이폰'];
            // let listTrans = [];
            /* for문을 이용해서 인덱스를 하나씩 증가하고 마지막 요소의 인덱스는 0이 되도록 작업 */
            // listTrans = [];
            // for(i = 0; i < listOri.length; i++) {
            //     if ( i === listOri.length - 1) {
            //         listTrans[0] = listOri[i];
            //     }
            //     else {
            //         listTrans[i+1] = listOri[i];
            //     }
                
            // }

            listTrans = [];
             for (let index in listOri) { //index 가 중요시 for in 문사용
                if (!(index < listOri.length - 1)) {
                    listTrans[0] = listOri[index];
                }
                else {
                    listTrans[Number(index) + 1] = listOri[index];
                }
                 
            }

            // for (let item of listOri) {
            //     console.log(item);
            // }

            
            console.log(listTrans);

            // 0 부터 16 사이의 정수를 랜덤으로 구하기
            // Math.random() : 0부터 1미만의 난수 생성
            console.log(Math.random());

            // Math.floor() : 소수점 버림
            console.log(Math.floor(Math.random()));

            // * 3 하면 최대 2까지의 숫자만 나옴 즉 입력한 숫자-1 까지만 출력
            console.log(Math.floor(Math.random() * 3 )); 

            listTrans = [];
            console.log(listTrans);
            for (let i = 0; i < listOri.length; i++) {
                const item = listOri[i % listOri.length]; // 0 ~ 16 까지 인덱스 반환
                if ($.inArray(item, listTrans) < 0) { // 값이 0보다 작으면 while문 실행 
                    while (true) {
                    const randomNumber = Math.floor(Math.random() * listOri.length);
                     if (!listTrans[randomNumber]) {
                          listTrans[randomNumber] = item;
                          break;
                        }
                    }
                }
            }
            console.log(listTrans);
        });
    </script>
</head>
<body>
    
</body>
</html>

0개의 댓글