단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
my_string은 영소문자와 공백으로만 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
my_string의 맨 앞과 맨 뒤에도 공백이 있을 수 있습니다.
my_string에는 단어가 하나 이상 존재합니다.
입출력 예
my_string | result |
---|---|
" i love you" | ["i", "love", "you"] |
" programmers " | ["programmers"] |
입출력 예 #1
예제 1번의 my_string은 " i love you"로 공백을 기준으로 단어를 나누면 "i", "love", "you" 3개의 단어가 있습니다. 따라서 ["i", "love", "you"]를 return 합니다.입출력 예 #2
예제 2번의 my_string은 " programmers "로 단어는 "programmers" 하나만 있습니다. 따라서 ["programmers"]를 return 합니다.
function solution(my_string) {
const strArr = my_string.split(' ');
const result = strArr.filter((el) => el !== '');
return result
}
해당 문제를 봤을 때 split
메소드 를 사용하면 되겠다는 생각을 했다.
split 메소드로 ' '
공백을 기준으로 나눴다.
filter
메소드는 해당 조건에 맞는 값만 반환 후
해당 요소가 공백이 아닌 것만 반환하도록 했다.
function solution(my_string) {
return my_string.trim().split(/ +/);
}
const solution = my_string => my_string.match(/[^\s]+/g);
내가 잘 모르는 메소드를 사용해 풀이한 코드 2개 가져왔다.
trim()?
trim()
메서드는 문자열 양 끝의 공백을 제거하고 원본 문자열을 수정하지 않고 새로운 문자열을 반환합니다. 여기서 말하는 공백이란 모든 공백문자(space, tab, NBSP 등)와 모든 개행문자(LF, CR 등)를 의미합니다.한쪽 끝의 공백만 제거한 새로운 문자열을 반환하려면
trimStart()
또는trimEnd()
를 사용하세요.match()?
match()
메서드는 문자열이 정규식과 매치되는 부분을 검색합니다.
출처 : mdn
trim는 양쪽 여백을 제거해 주는 메소드고 match는 정규식 표현과 일치하는 부분만 반환하는 것 같다.
이렇게 새로운 메소드를 알아는 것 같다.