✅문자열 에서 알파벳을 제외한 숫자만 추출해서 오름차순으로 정렬한 배열 을 반환하는 함수
const solution = (my_string) => {
return my_string
.replace(/[a-z]/gi, "")
.split("")
.sort((a, b) => a - b)
.map((el) => Number(el));
};
📌my_string 문자열에 특정한 패턴을 찾아 새로운 문자열로 치환한다.
replace 메소드 | 문자열에서 특정한 패턴을 찾아 새로운 문자열로 치환하는 메서드이다.
my_string.replace(/[a-z]/gi,””)
문자열에서 대소문자 구분없이 알파벳을 제외한 모든 문자 제거하기
(/[a-z]/,’’) 알파벳 소문자- 대문자 모두 대상으로 하고 g와i 플래그를 사용해 전체 문자열에서 모두 검색해 대소문자를 구분하지 않는다.
📌 split(’’) 문자열을 배열로 변환하는 메서드
()인자로 전달된 ‘ ‘ 빈 문자열은 문자열을 문자 단위로 쪼개는 역할은 합니다.
📌 sort((a,b) ⇒ a-b) sort 자체가 문자열 정렬 순서로 사용해!
sort 가 배열의 각 요소들을 오름차순으로 정렬해줌
📌 .map((el) ⇒ Number(el))
이건 배열의 모든 요소들을 숫자로 변환해서 반환시켜준다.
이함수를 실행하면 문자열에서 숫자만 추출한 후 오름차순으로 정렬된 숫자배열이 반환한다.
같은 문제 다른 풀이 👀
function solution (my_stirng) {
return [...my_string].map(Number).filter(a => isNaN(a)).sort((a,b)
=> a-b)}
- […my_string]
위코드는 전달된 문자열 (mystring)을 [] 배열로 변환하는데
…spread연산자를 사용하여 배열의 각문자열 요소를 개별 요소로 분리한다.
- map(Number)
이전 단계에서 생성된 문자열 배열의 모든 요소를 숫자로 변환한다.
여기서 Number() 메서드는 문자열을 숫자로 ! 변환하는 내장 함수이다.
- .filter(a⇒ !isNaN(a))
이건 이전 단계에서 생성된 배열에서 숫자가 아닌 요소를 제외한다.
isNaN 함수는 전달된 값이 NaN (숫자가 아닌 ) 경우 true를 반환한다.
- sort ((a,b) ⇒ a-b)배열의 오름차순 | sort 자체가 문자열 정렬 순서로 사용해!
숫자를 정렬할 때 숫자간의 비교를 위해 비교 함수를 전달해주어야 해
따라서 a-b ⇒ a-b 함수는 a가 b보다 작은 경우 음수 , 같은 경우 0 , 큰경우 양수를
반환하도록 정의하고 있다.
그래서 sort를 실행하면 문자열에서 숫자만 추출한 후 오름차순으로 정랼된 숫자 배열이 반환한다.!
오늘의 요약
[replace]
다시 만나는 replace 메서드는 문자열에서 특정한 패턴을 찾아 새로운 문자열로 치환하는 메서드이다.
첫 번째 인자로 전달된 패턴을 찾아 | 두번째 인자로 전달된 문자열로 치환한다.
패턴은 정규식 객체나 문자열로 사용해 지정 할수 있다.
만약 문자열을 사용하려 패턴을 지정할 경우 첫 번째 일치하는 문자열만 치환한다.
replace() 메서드는 원본 문자열을 변경하지 않고 새로운 문자열을 반환합니다. 따라서, replace() 메서드를 사용하여 문자열을 수정하려면, 반환된 값을 새로운 변수에 할당해야 합니다.
'Coding 🖐🏻 > javascript' 카테고리의 다른 글
filter 필터 사용 문제 (0) | 2023.06.18 |
---|---|
JS | 세균증식 for 문 , 이진수 사용 (0) | 2023.03.23 |
JS | 렌더링 , SPA (1) | 2023.03.14 |
JS | arr.sort 정렬 메소드 사용하기 오름차순 내림차순 | 프로그래머스 중앙값 구하기 (0) | 2023.03.14 |
JS | 특정문자열 바꾸기 replaceAll (0) | 2023.03.03 |