Javascript

Javascript - sort메서드

mickey7 2023. 10. 6. 11:45
sort
arr.sort( compare ( a, b) )

배열의 요소를 정렬할 때 사용하는 메서드

하나의 콜백 함수(compare)를 인수로 전달

-->필수는 아님, 콜백 함수를 생략하면 사전순, 오름차순 정렬

 

사용 예시(1)

배열 초기화
sort 메서드 사용
출력 결과

sort메서드는 새로운 배열을 반환하는 게 아니라 기존 배열 요소를 다시 정렬함.

 


콜백 함수로 비교함수를 전달 - compare(a,b)

  • 비교 함수가 양수를 반환 - a와 b중 b의 위치가 a보다 앞이어야 한다는 것을 의미
  • 비교 함수가 음수를 반환 - a와 b중 a의 위치가 b보다 앞이어야 한다는 것을 의미
  • 비교 함수가 0을 반환 - a와 b의 정렬 순서가 동일하다는 것을 의미
function compare(a,b) {
if ( a > b ) {
	return 1;
} else if( a < b ) {
	return -1;
} else {
	return 0;
}
}

arr.sort(compare)로 사용

 


숫자 배열 정렬 시 주의

sort 메서드는 기본적으로 요소를 문자열로 취급해 사전순으로 정렬하므로 두자릿 수와 한자릿 수의 정렬값이 기대와 어긋날 수 있음.

그래서 비교 함수가 필요함.