sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환한다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따른다.
- sort()
sort()만 사용할 경우 유니코드 순서에 따라서 오름차순으로 정렬되기 때문에 아래와 같은 결과가 출력된다.
const str = ['dog', 'Cat', 'apple', 'car', 'Banana', 'eye']
const num = [10, 7, 1280, 720, 456, 123]
str.sort() // [ 'Banana', 'Cat', 'apple', 'car', 'dog', 'eye' ]
num.sort() // [ 10, 123, 1280, 456, 7, 720 ]
- sort() 숫자 오름차순
const num = [10, 7, 1280, 720, 456, 123]
num.sort((a, b) => a - b) // [ 7, 10, 123, 456, 720, 1280 ]
- sort() 숫자 내림차순
const num = [10, 7, 1280, 720, 456, 123]
num.sort((a, b) => b - a) // [ 1280, 720, 456, 123, 10, 7 ]
- sort() 문자열 오름차순
영어 대문자, 소문자가 섞여있을 경우, 대문자가 소문자보다 앞에 오도록 정렬된다.
숫자 > 영어 대문자 > 영어 소문자 > 한글
const str1 = ['dog', 'Cat', 'apple', 'car', 'Banana', 'eye']
const str2 = ['강아지', '고양이', '사과', '자동차', '바나나', '눈']
const str3 = ['dog', '고양이', '사과', '자동차', 'Banana', '눈', '100종원']
str1.sort((a, b) => a > b ? 1 : -1) // [ 'Banana', 'Cat', 'apple', 'car', 'dog', 'eye' ]
str2.sort((a, b) => a > b ? 1 : -1) // [ '강아지', '고양이', '눈', '바나나', '사과', '자동차' ]
str3.sort((a, b) => a > b ? 1 : -1) // ['100종원', 'Banana', 'dog', '고양이', '눈', '사과', '자동차']
- sort() 문자열 내림차순
영어 대문자, 소문자가 섞여있을 경우, 대문자가 소문자보다 뒤에 오도록 정렬된다.
한글 > 영어 소문자 > 영어 대문자 > 숫자
const str1 = ['dog', 'Cat', 'apple', 'car', 'Banana', 'eye']
const str2 = ['강아지', '고양이', '사과', '자동차', '바나나', '눈']
const str3 = ['dog', '고양이', '사과', '자동차', 'Banana', '눈', '100종원']
str1.sort((a, b) => a > b ? -1 : 1) // [ 'eye', 'dog', 'car', 'apple', 'Cat', 'Banana' ]
str2.sort((a, b) => a > b ? -1 : 1) // [ '자동차', '사과', '바나나', '눈', '고양이', '강아지' ]
str3.sort((a, b) => a > b ? -1 : 1) // ['자동차', '사과', '눈', '고양이', 'dog', 'Banana', '100종원']
- sort() 대소문자 구분없이 오름차순
대소문자 구분 없이 정렬해주는 함수는 없기 때문에 toLowerCawe() 또는 toUpperCase() 메서드를 사용해서 소문자 또는 대문자로 변경한 후 비교해 정렬한다.
const str = ['dog', 'Cat', 'apple', 'car', 'Banana', 'eye']
str1.sort((a, b) => {
const upperCaseA = a.toUpperCase()
const upperCaseB = b.toUpperCase()
if(upperCaseA > upperCaseB) return 1
if(upperCaseA < upperCaseB) return -1
if(upperCaseA === upperCaseB) return 0
})
// [ 'apple', 'Banana', 'car', 'Cat', 'dog', 'eye' ]
- sort() 대소문자 구분없이 내림차순
const str = ['dog', 'Cat', 'apple', 'car', 'Banana', 'eye']
str.sort((a, b) => {
const upperCaseA = a.toUpperCase()
const upperCaseB = b.toUpperCase()
if(upperCaseA > upperCaseB) return -1
if(upperCaseA < upperCaseB) return 1
if(upperCaseA === upperCaseB) return 0
})
// [ 'eye', 'dog', 'Cat', 'car', 'Banana', 'apple' ]
'JavaScript > 문법' 카테고리의 다른 글
[자바스크립트] 배열 중복값 찾기(filter, indexOf) (0) | 2023.04.25 |
---|---|
[자바스크립트] 배열 중복 제거하기(전개연산자, Array.from, new Set, filter, indexOf) (0) | 2023.04.25 |
[자바스크립트] 문자열(String) 또는 숫자(Number)를 배열로 만들기 (0) | 2023.04.19 |
[자바스크립트] 소수점 처리하기(올림, 내림, 반올림, 제거, 자르기) (0) | 2023.04.19 |
[자바스크립트] 자주 사용하는 Math 메소드 (0) | 2023.04.19 |