JS/JS 공부

[JS] 배열의 정렬 sort, reverse

congs 2023. 4. 17. 12:42

sort( ) 오름차순 정렬 / reverse( ) 내림차순 정렬

 

  • array.sort() : 문자기준 오름차순 정렬 (ascending)
    • 가, 나, 다... / 1, 2, 3...
  • array.reverse() : 문자기준 내림차순 정렬 (descending)
    • 라, 다, 나... / 5, 4, 3...
  • 정렬할 배열의 원소가 숫자인 경우 : 콜백함수를 이용하여 내부 연산하여 정렬
            (콜백 함수 : 바로 사용하는 함수)

 

순차 정렬 (오름차순)
array.sort ( function(a,b){ 
return a- b;
})

역 정렬 (내림차순)
array.sort( function(a,b) {
return b - a;
})

 

사용 예 1) 1~45까지의 랜덤 숫자 6개를 생성해 배열에 넣고 콘솔에 출력

 <script>

        // myArr : 1~45까지의 랜덤 숫자 6개를 생성해 배열에 넣고 콘솔출력
       
       const myArr=[];
        
        for(let i=0; i<6; i++){
            myArr.push(Math.floor(Math.random()*45)+1);
            // myArr[i] = Math.floor(Math.random()*45)+1;
            console.log(myArr[i]);
        }

        // 순차 정렬후 콘솔출력
        myArr.sort(function(a,b){
            return a-b;
        }) 
        console.log(myArr);
        
</script>

 

사용 예 2) 객체가 있는 배열을 생성해 여러 기준으로 콘솔 출력

<script>
        // cars: 객체가 있는 배열 생성해 연식을 기준으로 콘솔 출력
        const cars = [
            {type: 'Volvo', year:2024},
            {type: 'Benz', year:2022},
            {type: 'BMW', year:2023}
        ];

        // 연식기준 오래된 순서 정렬 2022-2023-2024
        cars.sort(function(a,b){
            return a.year - b.year;
        });
        console.log(cars);

        // 객체의 문자값을 이용하여 정렬 Benz-BMW-Volvo
        cars.sort(function(a,b){
            let x = a.type.toLowerCase(); //같은 비교를 위해 전체 소문자로 변환
            let y = b.type.toLowerCase();
            if( x > y ){ return 1 };
            if( y > x ){ return -1 };
            return 0; 
        });
        console.log(cars); 
</script>