728x90
반응형

< 숫자와 문자가 섞인 배열 정렬하기 >
let arr = ['b', 3, 111, 'a', 1, 7, 'c'];
arr.sort((a, b) => {
if(typeof a === "string" && typeof a !== typeof b) {
return -1;
} else if (typeof b === "string" && typeof a !== typeof b) {
return 1;
} else {
return a < b ? -1 : a === b ? 0 : 1;
}
});
//['a', 'b', 'c', 1, 3, 7, 111]
- a와 b를 비교했을 때, a가 string, b가 number일 경우, 'return -1'을 하여 (a, b) 순으로 위치시킨다.
: 'return -1'은 a를 b 앞에 위치시킨다.
: 이미 (a, b) 순으로 위치하므로 순서 변화는 없다.
- a와 b를 비교했을 때, b가 string, a가 number일 경우, 'return 1'을 하여 (b, a) 순으로 위치시킨다.
: 'return 1'은 a와 b의 순서 swap
- 그럼 string은 앞에, number는 뒤에 위치하게 된다.
- a와 b의 크기 비교를 할 수 없는 경우, 순서에 변화는 없다
- 이후 else문을 통해 숫자 간, 문자 간 비교가 진행된다
- 'a < b'인 경우와 'a === b' a와 b의 순서변화는 없고, 'a > b'인 경우, 순서 swap
JS) arr.sort()
관련 포스트) JS) Array Method < Array > JS) Array < Array > - structure : let fruit = ['banana', 'apple', 'kiwi']; - 대괄호로 감싸고 쉼표로 구분 - 순서(index)가 있는 리스트 - 문자, 숫자, 객체, 함수 등을 포함 - 배열
premubo.tistory.com
728x90
반응형
'자료구조 및 알고리즘 > JavaScript Practice' 카테고리의 다른 글
JS Practice) 프로그래머스 : 문자 반복 출력하기 / 중앙값 구하기 / 특정 문자 제거하기 / 짝수는 싫어요 / 순서쌍의 개수 (0) | 2023.03.04 |
---|---|
JS Practice) 문자열 내 숫자 반환하기 (0) | 2023.03.02 |
JS Practice) 프로그래머스 : 머쓱이 보다 키 큰 사람 / 피자 나눠 먹기(3) / 배열 원소의 길이 / 점의 위치 구하기 / 짝수 홀수 개수 (3) | 2023.02.27 |
JS Practice) 프로그래머스로 공부하기 2 (0) | 2023.02.22 |
JS Practice) 프로그래머스 : 두 개의 매개변수 중 더 큰 수 구하기 / 숫자 비교하기 / 나이출력 / (num1 / num2) * 1000의 몫 반환 (0) | 2023.02.21 |