Coding 🖐🏻/javascript

JS 문자열 정렬하기(1) | replace , split , sort , map

김가마 2023. 3. 22. 17:28

✅문자열 에서 알파벳을 제외한 숫자만 추출해서 오름차순으로 정렬한 배열 을 반환하는 함수

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)}
  1. […my_string]

위코드는 전달된 문자열 (mystring)을 [] 배열로 변환하는데

…spread연산자를 사용하여 배열의 각문자열 요소를 개별 요소로 분리한다.

  1. map(Number)

이전 단계에서 생성된 문자열 배열의 모든 요소를 숫자로 변환한다.

여기서 Number() 메서드는 문자열을 숫자로 ! 변환하는 내장 함수이다.

  1. .filter(a⇒ !isNaN(a))

이건 이전 단계에서 생성된 배열에서 숫자가 아닌 요소를 제외한다.

isNaN 함수는 전달된 값이 NaN (숫자가 아닌 ) 경우 true를 반환한다.

  1. sort ((a,b) ⇒ a-b)배열의 오름차순 | sort 자체가 문자열 정렬 순서로 사용해!

숫자를 정렬할 때 숫자간의 비교를 위해 비교 함수를 전달해주어야 해

따라서 a-b ⇒ a-b 함수는 a가 b보다 작은 경우 음수 , 같은 경우 0 , 큰경우 양수를

반환하도록 정의하고 있다.

그래서 sort를 실행하면 문자열에서 숫자만 추출한 후 오름차순으로 정랼된 숫자 배열이 반환한다.!

오늘의 요약

 

[replace]

다시 만나는 replace 메서드는 문자열에서 특정한 패턴을 찾아 새로운 문자열로 치환하는 메서드이다.

첫 번째 인자로 전달된 패턴을 찾아 | 두번째 인자로 전달된 문자열로 치환한다.

패턴은 정규식 객체나 문자열로 사용해 지정 할수 있다.

만약 문자열을 사용하려 패턴을 지정할 경우 첫 번째 일치하는 문자열만 치환한다.

replace() 메서드는 원본 문자열을 변경하지 않고 새로운 문자열을 반환합니다. 따라서, replace() 메서드를 사용하여 문자열을 수정하려면, 반환된 값을 새로운 변수에 할당해야 합니다.