sort()

김진권·2021년 6월 28일
0

javascript

목록 보기
2/13

Array.prototype.sort()

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


1. Syntax

// Functionless
sort()

// Arrow function
sort((firstEl, secondEl) => { ... } )

// Compare function
sort(compareFn)

// Inline compare function
sort(function compareFn(firstEl, secondEl) { ... })

1) Parameters

1️⃣ compareFn : 정렬 순서를 정의해주는 함수이다. 생략된다면 배열은 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬된다.

  • firstEl : 비교의 대상이 되는 첫번째 요소.
  • secondEl : 비교의 대상이 되는 두번째 요소.

2) Return value

1️⃣ 정렬된 array가 반환값으로 온다. 원 배열이 정렬되기 때문에 복사본이 만들어지지 않는다.


2. Description

1) compareFn(a,b)이 없다면 요소를 문자열로 변환하고 유니 코드 코드 포인트 순서로 문자열을 비교하여 정렬된다.

즉, 숫자 배열의 경우

let arr = [300,1,2,4,5,6];
arr.sort();
console.log(arr);

console창에 [1,2,4,5,6,300]이 아니라 [1,2,300,4,5,6];로 정렬되어 변환되는 것을 확인할 수 있다.

2) compareFn(a,b)이 제공되면 배열 요소는 compareFn의 리턴값에 따라 정렬된다.

1️⃣ return 값 < 0 → a가 먼저오는 배열이 된다.

2️⃣ return 값 === 0 → 그대로 둔다.

3️⃣ return 값 > 0 → b가 먼저오는 배열이 된다.

예를 들어,

let arr = [300,1,2,4,5,6];
arr.sort((a,b)=>a-b);
console.log(arr);

console창에 [1,2,4,5,6,300] 인 배열이 나타난다.


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

profile
start!

0개의 댓글