sort()는 문자열을 기준으로 정렬하기 때문에, 숫자 정렬을 할 때는 compareFunction(a,b)를 꼭! 넣어줘야 한다!!!!!
arr.sort((a,b)=>a-b)
- 정렬 후 해당 배열 반환
- 배열에서만 사용이 가능하다.
- 기본적인 정렬 순서: 문자열의 유니코드
(숫자는 문자열로 변환: "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를 뒤로 보낸다.