sort()
자바스크립트에서 배열은 sort() 메서드를 사용하여 할 수 있다.
arr.sort([compareFunction]);
매개변수
compareFunction (Optional)
정렬 순서를 정의하는 함수로, 생략하면 각 요소의 문자열 변환에 따라 각 문자의 유니 코드 코드 포인트 값에 따라 정렬된다. 예를 들면 "사자"는 "호랑이" 앞에 오게 된다. 그렇지만 숫자는 "80"이 "9" 앞에 오게 되므로 숫자 정렬이 필요할 때는 적절한 compareFunction을 넣어야 한다.
var arr = [9, 80, 12];
arr.sort();
console.log(arr);
// 출력 : [ 12, 80, 9 ]
compareFunction이 제공되면 배열 요소는 이 함수의 리턴 값에 따라 정렬된다.
- compareFunction(a, b) < 0 : a가 앞에 오게 됨
- compareFunction(a, b) == 0 : a, b를 변경하지 않음. (ECMAscript 표준은 이를 보장하지는 않음)
- compareFunction(a, b) > 0 : b가 앞으로 오게 됨.
var arr = [9, 80, 12];
arr.sort((a, b)=>(a-b));
console.log(arr);
// 출력 : [ 9, 12, 80 ]
arr.sort((a, b)=>-(a-b));
console.log(arr);
// 출력 : [ 80, 12, 9 ]
만약 배열의 요소가 객체라면 하나의 속성 값을 기준으로 정렬할 수도 있다.
var aespa = [
{name: "karina", value: 25},
{name: "winter", value: 24},
{name: "ningning", value: 23},
{name: "giselle", value: 25},
];
// value 기준으로 정렬
aespa.sort(function(a, b) {
if(a.value < b.value) return -1;
else if(a.value > b.value) return 1;
else return 0;
});
console.log(aespa);
// 출력 :
// [
// { name: 'ningning', value: 23 },
// { name: 'winter', value: 24 },
// { name: 'karina', value: 25 },
// { name: 'giselle', value: 25 }
// ]
반환 값
정렬된 배열. 원 배열의 복사본이 만들어지는 것이 아니라 원 배열이 정렬되는 것이므로 주의해야 한다.
[참고]
'Language > Javascript·Typescript' 카테고리의 다른 글
[Javascript/자바스크립트] slice와 splice (0) | 2024.06.23 |
---|---|
[Javascript/자바스크립트] 진수 변환 (0) | 2024.06.22 |
[Javascript/자바스크립트] 배열 생성 및 초기화 (0) | 2024.06.21 |
[Javascript/자바스크립트] 대문자 소문자 변환 (0) | 2024.06.21 |
[Javascript/자바스크립트] 자바스크립트로 입력 받기 (0) | 2024.06.19 |