[JS] sort() 정리

열심히하시는개발자·2020년 12월 18일
0
post-thumbnail

sort()란 ?

  • 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환
arr.sort([compareFunction])

1. compareFunction 매개변수

  • arr.sort 안에 compareFunction 매개변수가 들어있다.
  • compareFunction은 정렬 순서를 정의하는 함수이고 생략을 하면 배열에 각 요소 문자열 변환에 따라 각 문자의 유니코드 코드 포인트 값에 따라 정렬된다.

2. 구체적인 설명

  • compareFunction을 사용하게 되면 배열 요소는 compare 함수의 반환 값에 따라 정렬된다. 만약 a와 b가 비교되는 두 요소가 있다고 가정해보자.

(문자열 비교)

2.1 compareFunction(a , b) < 0

  • a를 b보다 낮은 인덱스로 정렬한다(a가 먼저 온다)

2.2 compareFunction(a , b) > 0

  • b를 a보다 낮은 인덱스로 정렬한다(b가 먼저 온다)

2.3 compareFunction(a , b) = 0

  • a와 b를 서로에 대해 변경하지 않고 모든 다른 요소에 대해 정렬한다.

따라서 compare 함수의 형식은 다음과 같다.

function compare(a, b) {
  if (a < b) {
    return -1;
  }
  if (a > b) {
    return 1;
  }
  // a == b
  return 0;
}

(숫자 비교)

  • 문자열 대신 숫자를 비교하기 위해서는 compare함수 a에서 b를 뺀다.
function compareNumbers(a, b) {
  return a - b; //a-b를 하게 되면 배열이 오름차순으로 정렬 된다.
}
let numbers = [20, 30 , 5 , 10 , 15];

numbers.sort(function(a , b){

    return a - b;
 });
console.log(numbers); // [5, 10, 15, 20, 30]

(a - b)로 리턴 할 경우 numbers 변수 안에 들어 있는 인덱스들이 오름차순으로 정렬이 된다.

0개의 댓글