Miyeon

배열 정렬하기

2021-11-19JS

arr.sort() 메서드

  • 해당 배열에서 배열 요소를 정렬한 후 리턴함.
  • 원본 배열을 변경함.
  • 문자열의 유니코드 코드 포인트를 따르기 때문에 숫자 정렬은 따로 작업해줘야 함.

문자열이 담긴 배열 정렬하기

let a = ["a", "c", "b", "e"];
a.sort();
console.log(a);
// ['a', 'b', 'c', 'e']

숫자가 담긴 배열 정렬의 문제점

let a = [1, 11, 2, 30, 111];
a.sort();

console.log(a);
// [1, 11, 111, 2, 30]

숫자를 비교해서 오름차순 정렬하기

let a = [1, 11, 2, 30, 111];

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

console.log(a);
// [1, 2, 11, 30, 111]

compareNumbers함수는 어떻게 두 숫자를 비교할 수 있을까?

배열의 요소를 비교한 뒤 리턴값을 기준으로 순서 변경함.

  • a - b < 0 : b가 a보다 더 크다. 순서 그대로 유지.
  • a - b = 0 : a와 b가 같다. 순서 그대로 유지.
  • a - b > 0 : a가 b보다 크다. a, b 순서 변경.

참고

Array.prototype.sort() - JavaScript | MDN
[메서드][Array.prototype.sort()]자바스크립트 정렬함수 sort()
JavaScript sort() 함수 톺아보기