728x90
Sort()
sort() 메서드는 파이썬에도 존재하고 많은 프로그래밍 언어에도 존재하는 메서드 이다.
기본적으로 오름차순으로 정렬된다.
실습하기
let c = console.log
let lst = [1,7,10,3]
c(lst.sort())
오름차순으로 정렬되긴 했는데 보통의 사람들이 원하는 값은 [1 , 3 , 7 , 10] 이 였을 것이다.
이렇게 정렬되는 이유는 유니코드 값에따라 정렬하게 되고 숫자는 문자열로 변환되어서 10에 1을 보고 3과 7보다 앞으로 보내야한다고 생각해 이런 결과가 나온것이다.
파이썬과 달리 얕은복사로 진행되기 때문에 sort() 한번으로 배열의 순서는 바뀌게된다.
해결하기
arr.sort([compareFunction])
자바스크립트 sort()에는 매개변수로 compareFunction을 넣을 수 있다.
compareFunction ??
정렬 순서를 정의하는 함수입니다.
함수를 만들어서 어떻게 정렬할지 비교(?) 함수만들어 주면 됩니다.
마무리
let c = console.log
let lst = [1,7,10,3]
c(lst.sort((a,b) =>{
return a-b
}))
이렇게 정상적으로 작동하는 것을 볼 수 있습니다.
a-b 를 한 값으로 비교하는 것인데,
a-b가 음수면 a < b 라는 관계를 얻게 되고 양수면 a > b 라는 관계를 얻게 되고 0이면 a === b 라는 관계를 얻게 되어서 원하는대로 오름차순으로 정렬할 수 있게 됩니다.
내림차순 정렬
let c = console.log
let lst = [1,7,10,3]
c(lst.sort((a,b) =>{
return b-a
}))
a-b 를 b-a 로 바꾸면 내림차순으로 정렬을 할 수 있습니다.
감사합니다.
728x90
'Javascript' 카테고리의 다른 글
filter() (0) | 2023.02.02 |
---|---|
map() (0) | 2023.01.30 |
forEach() (0) | 2023.01.22 |
For 반복문 (0) | 2023.01.18 |
Local Stroage 이용하기 (1) | 2022.09.19 |