아래 링크의 강의 중 Section 13. Find The Vowels
의 내용을 추려 이번 글을 작성하였습니다.
The Coding Interview Bootcamp: Algorithms + Data Structures on Udemy
// ver. 1.
function vowels(str) {
const splited = str.toLowerCase().split("");
let cnt = 0;
for (let char of splited) {
if (
char === "a" ||
char === "e" ||
char === "i" ||
char === "o" ||
char === "u"
) {
cnt++;
}
}
return cnt;
}
console.log(vowels("Why do you ask?"));
// ver. 2.
function vowels(str) {
let cnt = 0;
const vowelsArr = ["a", "e", "i", "o", "u"];
for (let i = 0; i < str.toLowerCase().length; ++i) {
for (let j = 0; j < vowelsArr.length; ++j) {
if (str.toLowerCase()[i] === vowelsArr[j]) {
cnt++;
}
}
}
return cnt;
}
console.log(vowels("Why do you ask?"));
// with includes()
function vowels(str) {
let count = 0;
const vowelsChecker = ["a", "e", "i", "o", "u"];
// const vowelsChecker = "aeiou";
for (let char of str.toLowerCase()) {
if (vowelsChecker.includes(char)) {
count++;
}
}
return count;
}
console.log(vowels("Why do you ask?"));
위 세 답안 모두 기본 작동 원리는 같다. for문
으로 입력값 str
을 탐색하여 a
, e
, i
, o
, u
가 포함되어 있다면 count
의 개수를 올리는 방식으로 짜여 있다.
includes()
method는 주어진 배열을 탐색하여 argument
의 값이 포함되어 있는지 여부에 따라 boolean
값을 반환한다.
includes()+MDN_Link
function vowels(str) {
const matches = str.match(/[aeiou]/gi);
return matches ? matches.length : 0;
}
console.log(vowels("Why do you ask?"));
match()
method는 정규식을 판별하여 정규식 내 값이 포함되어 있으면 일치하는 모든 값들을 배열로 반환하고, 일치하는 값이 없으면 null
을 반환한다.
match()_MDN_Link