removeVowels.js (8kyu 97)
Codewars 알고리즘 풀이
Problem
- Create a function called removeVowels to remove all the lowercase vowels in a given string.
- 문자열의 소문자 모음을 모두 제거한다.
Solution 01
function removeVowels(str) {
let vowels = 'aeiou';
let result = '';
for (let i = 0; i < str.length; i++) {
if (vowels.indexOf(str[i]) === -1) {
result += str[i];
}
}
return result;
}
removeVowels('abcde'); // bcd
removeVowels('ABCDE'); // ABCDE
removeVowels('Codewars'); // Cdwrs
removeVowels('How are you?'); // Hw r y?
indexOf()
메소드주어진 값이 처음으로 나타나는 위치를 반환한다.
일치하는 값이 없으면 -1을 반환한다.
Solution 02
function removeVowels(str) {
return str.replace(/[aeiou]/g, '');
}
removeVowels('abcde'); // bcd
removeVowels('ABCDE'); // ABCDE
removeVowels('Codewars'); // Cdwrs
removeVowels('How are you?'); // Hw r y?
정규표현식 (RegExp)
replace()
: 대응되는 문자열을 찾아 다른 문자열로 치환한다.
g
: 전역 검색
Solution 03
function removeVowels(str) {
return str.split(/[aeiou]/).join('');
}
removeVowels('abcde'); // bcd
removeVowels('ABCDE'); // ABCDE
removeVowels('Codewars'); // Cdwrs
removeVowels('How are you?'); // Hw r y?
split()
메소드문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.
join()
메소드배열의 모든 element를 결합하고, 새 문자열로 반환한다.