[Array] 배열 정렬 함수 sort()에 매개변수가 필요한 이유

이주희·2022년 3월 24일
0

JS Method

목록 보기
12/17

sort()는 문자열을 기준으로 정렬하기 때문에, 숫자 정렬을 할 때는 compareFunction(a,b)를 꼭! 넣어줘야 한다!!!!!
arr.sort((a,b)=>a-b)

sort : 정렬

  • 정렬 후 해당 배열 반환
  • 배열에서만 사용이 가능하다.
  • 기본적인 정렬 순서: 문자열의 유니코드
    (숫자는 문자열로 변환: "80" < "9") : 숫자 정렬에 고차함수를 넣지 않으면 첫번째 자리만 비교한다.
  • compareFunction(a, b)이 0보다 작은 경우 a를 b보다 낮은 색인으로 정렬(앞으로 보냄)
  • 기존 배열이 정렬된다. (복사본이 만들어지는 것이 아님)
arr.sort(()=>{
		//비교기준 함수
		//없을시엔 기본적인 정렬에 따라 정렬됩니다.
	})

/* 숫자열에서 비교기준 함수 */
//오름차순
arr.sort((a,b)=>{
		return a-b
	}) 
//내림차순
arr.sort((a,b)=>{
		return b-a
	})

/* 문자열에서 비교기준 함수(숫자열도 가능) */
//오름차순
arr.sort((a,b)=>{
		return a < b ? -1 : 1
	})
//내림차순
arr.sort((a,b)=>{
		return a > b ? -1 : 1
	})

문자의 정렬 기준 아스키코드: 각각의 문자는 대체되는 유니코드 번호를 가진다.

a = "a"
"a".charCodeAt() //97
"z".charCodeAt() //122
"A".charCodeAt() //65
"B".charCodeAt() //66
"Z".charCodeAt() //90
arr=["a", "b", "Z", "c"];

arr.sort((a,b)=> { //a는 배열의 두번째 데이터, b는 첫번째 데이터부터 가져온다.
  console.log(a,b)
  return a > b ? -1 : 1 //내림차순
  return a < b ? 1 : -1 //내림차순
  
  return a > b ? 1 : -1 //오름차순
  return a < b ? -1 : 1 //오름차순
  
})
* 조건문이 true라서 -1인 경우 a를 앞으로 보낸다.
* 조건문이 false라서 1인 경우 a를 뒤로 보낸다.
profile
🍓e-juhee.tistory.com 👈🏻 이사중

0개의 댓글