Javascript

Array.sort( )

안개바다 2023. 3. 7. 15:55

Array.sort( )

Array.sort() 메소드는 배열을 정렬해주는 기능입니다

기본적으로 함수 선언 없이 .sort()로 바로 사용하면

let arr = [4,2,3,5]
arr.sort()
console.log(arr) => [2,3,4,5]

위와 같이 오름 차순으로 정렬을 해줍니다. 언뜻 편해보이지만 함수 없이 사용시에는 큰 문제점이 있습니다.

바로 기본적으로 sort 메소드는 유니코드 순으로 정렬을 해준다는 것입니다.

예를 들어

let arr = [10,1,11,101,4,2,3,5]
arr.sort()
console.log(arr) => [1, 10, 101, 11, 2, 3, 4, 5]

 유니코드 순서상 1 다음에는 2가 아닌 10이기 때문에 우리가 원하는 정렬을 해주지는 않습니다 따라서 숫자 오름차순 내림차순을 이상적으로 하기 위해서는 아래와 같이 사용해야합니다.

let arr = [10,1,11,101,4,2,3,5]
arr.sort((a,b)=>a-b)
console.log(arr) => [1, 2, 3, 4, 5, 10, 11, 101]

sort()메소드는 두 개의 요소(엘리먼트)를 입력 받을 떄

예를 들어 a,b를 입력 받고 결과값이 (+)1이면 a,b 순으로 정렬하고 -1이면 b,a 순으로 정렬합니다. 결과값으로 0을 반환 할 경우 수정 없이 입력 순서 그대로 반환합니다.

 따라서 배열을 오름차순 으로 정리하고 싶다면 sort((a,b)=>a-b) 내림차순으로 정리하고 싶다면 sort((a,b)=>b-a)으로 메소드를 사용해주면 됩니다.

 

sorta 메소드는 배열의 원본 값을 수정하기 때문에 같은 주소를 참조하는 배열이 있을 경우 주의해서 사용해야 합니다.