const arr = [1, 101, 10001, 222];
console.log(arr); // [ 1, 101, 10001, 222 ]
arr.sort();
console.log(arr); // [ 1, 101, 10001, 222 ]
위 코드는 자바스크립트에서 배열을 정렬하는 코드입니다.
숫자를 정렬하려고 했는데 javascript 내장 메서드인 sort 함수를 사용하니 이상한 결과가 나옵니다.
왜 그럴까요
JavaScript에서 sort 함수를 실행했을 때 배열을 문자열을 기준으로 정렬해주기 때문입니다.
따라서 js에서 숫자를 기준으로 배열을 정렬해주고 싶다면 아래와 같이 코드를 수정해주어야 합니다.
const arr = [1, 101, 10001, 222];
console.log(arr); // [ 1, 101, 10001, 222 ]
arr.sort((a, b)=>{
return a-b;
});
console.log(arr); // [ 1, 101, 222, 10001 ]
원하는대로 숫자가 정렬되는 것을 알 수 있습니다.
arr.sort([compareFunction])
JavaScript 문서 안에서 sort 함수에 대한 내용인데요, compareFunction이란 함수를 통해 정렬을 커스터마이징할 수 있습니다.
compareFunction의 반환값에 따라 정렬을 시켜줄 수 있는데요, 자세한 내용은 아래 링크를 참고하시면 좋을 것 같습니다.
참고
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
'컴퓨터 언어 > JavaScript' 카테고리의 다른 글
[JavaScript] 불변성 (0) | 2021.08.18 |
---|---|
[React Native] zsh: permission denied: ./gradlew (0) | 2021.08.17 |
[JavaScript] Json과 메서드 (0) | 2021.07.30 |
[JavaScript] Date (0) | 2021.07.30 |
[JavaScript] 구조 분해 할당(Destructuring Assignment) (0) | 2021.07.30 |