const arr = [1, 5, 4, 2, 3];
arr.sort((a, b) => a - b);
arr; // (5) [1, 2, 3, 4, 5];
b - a를 하면 내림차순으로 정렬됩니다. 4와 2를 뽑았다고 합시다. 각각 a와 b일 때 b - a는 -2로 0보다 작습니다. 따라서 4, 2로 정렬하게 됩니다.
const arr = [1, 5, 4, 2, 3];
arr.sort((a, b) => b - a);
arr; // [5, 4, 3, 2, 1];
sort()를 사용하면 원본 배열인 arr이 정렬됩니다. 이때 원본 배열을 남겨 두고 정렬하고 싶다면 얕은 복사 후에 sort()를 사용하면 됩니다.
const arr = [1, 5, 4, 2, 3];
const shallow = [...arr];
shallow.sort((a, b) => b - a);
arr; // [1, 5, 4, 2, 3];
shallow; // [5, 4, 3, 2, 1];