sort 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환한다.
기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.
*참고자료 - MDN sort()
const arr1 = [1, 30, 4, 21, 100000, 445,79878];
arr1.sort()
console.log(arr1)
arr1 이라는 배열에 아무 숫자나 집어 넣어서 콘솔로그로 출력해보자.
[1, 100000, 21, 30, 4, 445, 79878]
결과는 이러한 값이 나온다.
왜이러는걸까
sort메서드는 비교함수를 지정하지 않으면 기본적으로 문자열 비교를 실행한다.
위에 말했듯이 유니코드 순서로 정렬..
하지만 이걸 비교함수를 지정해준다면?
const arr1 = [1, 30, 4, 21, 100000, 445,79878];
arr1.sort((a, b) => a - b)
console.log(arr1)
sort 메서드에 콜백함수로 비교함수를 지정하였다.
(a, b) => a - b
위 함수는 a에서 b를 뺀 걸 반환하는 함수이다.
a-b가 음수이면 a가 b보다 작은 것이고,
a-b가 0이면 같은,
a-b가 양수이면 a가 b보다 큰 것 이다.
이러한 결과를 통해 오름차순으로 정해진다.
그리고 arr1을 콘솔로그로 출력하면
[1, 4, 21, 30, 445, 79878, 100000]
의 값이 출력된다.
댓글