JavaScript

[JavaScript] sort(), 오름차순 정렬, 내림차순 정렬

SangRok Jung 2022. 4. 14. 23:22
반응형

Array.prototype.sort()

sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다.

정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.

 

 

구문

arr.sort([compareFunction])

 

매개변수

compareFunction Optional정렬 순서를 정의하는 함수. 생략하면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬됩니다.

 

반환 값

정렬한 배열. 원 배열이 정렬되는 것에 유의하세요. 복사본이 만들어지는 것이 아닙니다.

 

설명

compareFunction제공되지 않으면 요소를 문자열로 변환하고 유니 코드 코드 포인트 순서로 문자열을 비교하여 정렬됩니다. 예를 들어 "바나나"는 "체리"앞에 옵니다. 숫자 정렬에서는 9가 80보다 앞에 오지만 숫자는 문자열로 변환되기 때문에 "80"은 유니 코드 순서에서 "9"앞에 옵니다.

compareFunction이 제공되면 배열 요소는 compare 함수의 반환 값에 따라 정렬됩니다. a와 b가 비교되는 두 요소라면,

  • compareFunction(a, b)이 0보다 작은 경우 a를 b보다 낮은 색인으로 정렬합니다. 즉, a가 먼저옵니다.
  • compareFunction(a, b)이 0을 반환하면 a와 b를 서로에 대해 변경하지 않고 모든 다른 요소에 대해 정렬합니다. 참고 : ECMAscript 표준은 이러한 동작을 보장하지 않으므로 모든 브라우저(예 : Mozilla 버전은 적어도 2003 년 이후 버전 임)가 이를 존중하지는 않습니다.
  • compareFunction(a, b)이 0보다 큰 경우, b를 a보다 낮은 인덱스로 소트합니다.
  • compareFunction(a, b)은 요소 a와 b의 특정 쌍이 두 개의 인수로 주어질 때 항상 동일한 값을 반환해야합니다. 일치하지 않는 결과가 반환되면 정렬 순서는 정의되지 않습니다.

 

오름차순 정렬

arr.sort(function(a, b)  {
  return a - b;
});

 

내림차순 정렬

arr.sort(function(a, b)  {
  return b - a;
});

 

 

 

 

 

예제

0부터 임의의 수까지의 난수를 임의의 수만큼 받고 사용자의 명령에 따라 버블 소팅하는 함수를 작성하고 객체에 오름차순과 내림차순의 값을 각각 받으시오.

<body>
    <script>
        function bubbleSort(num, rNum, cmd){
            randNum = [];

            //랜덤수 rNum개 생성
            for (let i = 0; i < rNum; i++)
            {
                randNum[i] = Math.floor(Math.random() * num + 1)
            }

            //오름차순 및 내림차순
            if (cmd === 'up')
            {
                randNum.sort(function(a, b)
                {
                    return a - b;
                })
            }
            else if (cmd === 'down')
            {
                randNum.sort(function(a, b)
                {
                    return b - a;
                })               
            }
            else
            {
                return null
            }

            return randNum
        }

        let sort = {}

        //객체에 입력
        sort.asOrder = bubbleSort(30, 100,'up')
        sort.dsOrder = bubbleSort(50, 20,'down')

        console.log(sort)

    </script>
</body>

 

 

* TIP

object(객체)의 이해

https://cruella-de-vil.tistory.com/38

 

[JavaScript] object type(객체형) +예제

객체형(Object type) 필요한 데이터와 기능을 가지고 있다. ▶ 개념 Primitive type을 제외한 데이터 타입의 베이스 인스턴스. JavaScript의 거의 모든 객체는 Object의 파생 인스턴스다. 데이터를 읽고 쓰는

cruella-de-vil.tistory.com

 

함수의 이해

https://cruella-de-vil.tistory.com/27

 

 

[JavaScript] 함수, 파라미터,재귀함수, 디버깅, +예제

▶ 함수 JavaScript에서 기본적인 구성 블록 중의 하나다. 작업을 수행하거나 값을 계산하는 문장 집합이다. 함수를 사용하려면 함수를 호출하고자 하는 범위 내에서 함수를 정의해야 한다. 함수는

cruella-de-vil.tistory.com

 

 

난수 생성

https://cruella-de-vil.tistory.com/44

 

[JavaScript] 특정 범위 랜덤수 생성하여 버블소팅하기. Math

랜덤수를 추출하기 위해서는 내장객체 Math중 Math.random과 Math.foor()를 사용해야한다. Math 내장 객체중 가장 많이 사용되는 4가지에 대해 먼저 알아보겠다. Math.random() Math.floor() Math.round() Math.c..

cruella-de-vil.tistory.com

 

반응형