영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) {
let a = my_string.replaceAll('a',"");
let e = a.replaceAll('e',"");
let i = e.replaceAll('i',"");
let o = i.replaceAll('o',"");
let u = o.replaceAll('u',"");
return u;
}
한 글자씩 .replaceAll()을 통해 지우는 방법으로 어떻게든 풀었다
다른 사람들의 풀이를 보자
function solution(my_string) {
return Array.from(my_string).filter(t => !['a', 'e', 'i', 'o', 'u'].includes(t)).join;
// Array.from() 유사 배열 객체를 배열로 바꿔준다
// .filter()로 각 요소를 검사 콜백함수의 값이 true인 경우에만
// 전달된 요소가 t가 새로운 배열 안에 들어가고 이를 통해 새로운 배열을 생성
// [...].includes(t) 주어진 배열에 특정 값 t가 있는지 boolean값으로 반환
// Array.from(hello) -> ["h", "e", "l", "l", "o"]
// ["h", "e", "l", "l", "o"]가 하나씩 전달되어
// !['a', 'e', 'i', 'o', 'u'].includes(t))에서
// true인 결과가 나오는 t값만을 모아 새로운 배열을 생성
// !가 붙어있기에 ['a', 'e', 'i', 'o', 'u'] 안에 t랑 같은 값이 있다면 false로 바뀐다
// 따라서 ['a', 'e', 'i', 'o', 'u']가 없는 값만을 선별한 새로운 배열을 생성
// join("") 로 다시 풀어서 문자열로 바꾼다
}
한참을 보고 말로 이렇게 글로 해석해서 쓸 수 있는데까지 시간이 좀 걸렸다
function solution(my_string) {
return my_string.replace(/[aeiou]/g, '');
}
// replace() 특정 문자를 대체해 다른 문자로 바꾼다
// 정규표현식에서 [ab]안에 문자들이 a||b로 작동됨
// /g는 전역 검색
// '' 앞에 찾은 문자들을 대체할 문자
정규표현식을 안다면 이게 훨씬 더 이해하기 쉬울 것 같다
'오늘 뭐했냐 > 기억하면 좋을 문제들' 카테고리의 다른 글
최빈값 구하기 (객체 혹은 Map 활용) (0) | 2023.05.29 |
---|---|
문자열 안에 문자열 (0) | 2023.05.27 |
문자 반복 출력 - .map(), .repeat() (0) | 2023.05.27 |
문자열 뒤집기 - 스프레드 문법, .reverse(), .join() (0) | 2023.05.27 |
제곱 수 판별하기 (0) | 2023.05.26 |