정렬 하기 위해서는 sort 메소드를 사용한다.
→ arr.sort ()
배열을 재 정렬해 주는메소드 이다.
그럼
→ arr.sort () 로 숫자로 오름차순 정렬하기
풀이
A,b 두 요소를 전달하고 a-b로 크기를 비교해서 양수인지, 음수인지 0인지 만 본다.
A가> b 보다 크면 양수로 리턴 , 같으면 0 으로 , a가 <b보다 작으면 음수로 리턴
내부에서 값들이 어떻게 처리되는지 를 보면 a가 작으면 a를 앞으로 보내고 , 0을 반환하면 그대로 있고 ,
a가 크면 b가 작은거니까 b를 앞으로 보내고 그래서 오름차순이 되는 거임
arr.sort((a,b) => a-b) : sort() 메소드를 사용하여 배열을 오름차순으로 정렬합니다.
arr.sort((a,b) => b-a) : sort() 내림차순
예제로 보겠다
아래는 프로그래머스 중앙값 구하기
function solution(arr) {
return arr.sort((a, b) => a - b)[Math.floor(arr.length / 2)];
}
풀이
이 함수는 배열 arr 을 인자로 받아, 배열을 정렬한 후 가운데 값(중앙값)을 반환하는 함수입니다.
✅ sort함수로 배열을 오름차순으로 정렬합니다.
✅a-b 뺀 계산 결과가 📦가 0보다 작으면. a를 b보다 앞으로 정렬 , 아니면 뺀 계산 결과가 📦 0보가 크면 a를 b뒤로 정렬
✅Math.floor 함수를 사용하여 소수점 이하를 버리고 정수값으로 만듭니다.
✅그래서 구한 인덱스를 배열에 접근하여 중앙값을 반환합니다.
✅ 정렬된 배열의 중앙값을 찾기 위해 배열의 길이를 2로 나눕니다.
이해 안된다면
예를 들어, [1, 3, 5, 2, 4] 라는 배열 있다
, arr.sort((a,b) => a-b) 를 통해 [1, 2, 3, 4, 5]로 정렬됩니다.
그리고 Math.floor(arr.length / 2) 는 2를 반환하므로, arr[2] 를 통해 3을 반환합니다. 따라서 이 함수는 위 배열의 중앙값인 3을 반환합니다.
'Coding 🖐🏻 > javascript' 카테고리의 다른 글
JS 문자열 정렬하기(1) | replace , split , sort , map (1) | 2023.03.22 |
---|---|
JS | 렌더링 , SPA (1) | 2023.03.14 |
JS | 특정문자열 바꾸기 replaceAll (0) | 2023.03.03 |
JS | 자바스크립트 불변성이란? 원시타입 vs 참조타입 (0) | 2023.03.02 |
vue.js components 뷰 컴포넌트 사용 , 개념 (0) | 2022.11.04 |