Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- JSON
- react
- couchcoding
- sort
- JavaScript
- foreach
- useSearchParams
- db.json
- 자바스크립트
- 블럭요소
- redux 사용방법
- Redux
- toString
- 6주포트폴리오
- first-child
- useParams
- useEffect
- React state
- Redux store
- line-through
- 콜백함수
- React onClick
- redux toolkit
- 자바스크립트배포
- react redux
- javascript코딩테스트
- 협업프로젝트
- 인라인블럭
- 카우치코딩
- javascript React
Archives
- Today
- Total
개발하는 루루언니
javascript: sort. 정렬 개념잡기 본문
728x90
반응형
쇼핑몰 정렬을 구현하려고 하다보니 sort를 다시찾게 되었는데 문자열은 sort를 사용하면 ' 가 나 다 ' 순으로 정렬이 되지만
숫자는 어떻게 될까? 검색을 해보았다.
let ary= [ 2, 90 ,100 ] 이 있다면 어떻게 정렬될까?
당연히 그대로 2,90,100 이겠지 라고 생각하겠지만
배열안에 숫자는 " 2 " , "90","100" 문자열로 구분을 하기 때문에
앞에 숫자인 2, 9, 1 만으로 비교를 하게된다.
그럼 결과값은 100,2,90 이렇게 나오게 될것이다.
이걸 어떻게 해야 제대로 된 정렬이 가능할까?
ary.sort( a,b => a - b )
숫자를 비교하기위한 sort에 compare function 함수를 실행하게 된다.
a-b 를하고 값이 양수 ( + ) 인경우 배열의 자리를 교체하고a -b 를하고 값이 음수 ( - ) 일경우 배열의 자리는 그대로 유지한다.
2 - 90 을 하면 - 88 인 음수값이 나오게 되므로 자리는 그대로 유지한다.90-100을 하면 -10 이 인 음수값이 나오므로 자리는 유지한다.
이렇게 계산이 된다.
그 반대로 값이 큰값을 기준으로 정렬을 하고 싶다면?
ary.sort( a,b => b - a )
반대로 b와 a 의 값을 변경해주면 된다.
90 - 2 는 88 양수가 나오니까 자리 배치를 변경하여 90이 앞으로 가게되므로 숫자가 큰 순서대로 정렬이 된다.
728x90
'컴퓨터 정보 > javascript' 카테고리의 다른 글
javascript : Number 숫자변환 / 숫자 ( , ) 콤마 toLocaleString 알아보기 (0) | 2023.02.28 |
---|---|
javascript: sort의 객체 배열 정렬 정리 (0) | 2023.02.21 |
javascript : forEach 배열안에 특정 id 데이터 삭제하기 (0) | 2023.02.17 |
javascript : 배열 메소드 ( reduce ) 알아보기 🔥 (0) | 2023.02.16 |
javascript : split 사용해보기 (0) | 2023.02.08 |