Javascript

[Javascript] sort() - 정렬 (오름차순/내림차순/문자열 등등)

쭈꾸미 2022. 2. 5. 21:40

sort()

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

이 때 매개변수를 활용해 어떻게 정렬할 것인지 순서를 지정해줄 수 있다.

// 기본 형태
arr.sort([compareFunction])
// compareFunction은 정렬 순서를 정의하는 함수

 

정렬하는 방법

  • compareFunction(a, b)가 생략된 경우, 배열들이 유니코드 값 순서대로 정렬된다.
  • compareFunction(a, b)가 반환하는 값이 0보다 작은 경우에는 a가 b보다 먼저 온다.
  • compareFunction(a, b)가 반환하는 값이 0보다 큰 경우에는 b가 a보다 먼저 온다.
  • compareFunction(a, b)가 0을 반환할 경우 정렬 순서를 변경하지 않는다.
  • compareFunction(a, b)가 반환하는 값은 a, b에 대하여 항상 일정해야 한다. 일치하지 않는 결과가 반환될 경우 정렬 순서는 정의되지 않는다.

 

예시 1. 유니코드 순 정렬 (문자 오름차순 정렬)

const arr = ["사과", "바나나", "딸기"]
arr.sort() // [ '딸기', '바나나', '사과' ]

 

예시 2. 숫자 오름차순/내림차순 정렬

const arr = [5, 2, 16, 7]
arr.sort((a, b) => a - b) // [ 2, 5, 7, 16 ] - 오름차순
arr.sort((a, b) => b - a) // [ 16, 7, 5, 2 ] - 내림차순

 

자세한 내용은 MDN을 참고하자.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

 

Array.prototype.sort() - JavaScript | MDN

sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.

developer.mozilla.org