sort 메소드 사용

삽질 저장소·2022년 6월 29일
0

JavaScript

목록 보기
4/4

알고리즘 문제를 풀다가 숫자들을 sort를 사용하여 정렬해야하는 일이 생겼을 때

const array = [10, 5, 2, 6, 3, 7, 4];
console.log(array.sort());
//[10, 2, 3, 4, 5, 6, 7]

이렇게 해버리니 10이 2보다 앞에 나오는 일이 발생했다.

sort메소드는 인자로 비교함수를 작성하지않으면 문자열로 인식해서 유니코드 기준으로 정렬하게된다.

원하는 결과를 얻기 위해서는 sort에 비교함수를 넣어주어야한다.

const array = [10, 5, 2, 6, 3, 7, 4];
array.sort((a, b) => a - b);

이 비교함수가 리턴하는 값이 0보다 작을 경우,  a가 b보다 앞에 오도록 정렬하고,
리턴하는 값이 0보다 클 경우, b가 a보다 앞에 오도록 정렬한다.
리턴값이 0인경우는 그대로 놔둔다.

0개의 댓글