Problem
- We want to know the index of the vowels in a given word.
- 주어진 단어에서 모음의 index를 반환해라.
- Vowels:
a
, e
, i
, o
, u
, y
Solution 01
function findVowels(word) {
word = word.toLowerCase();
let result = [];
for (let i = 0; i < word.length; i++) {
if (
word[i] === 'a' ||
word[i] === 'e' ||
word[i] === 'i' ||
word[i] === 'o' ||
word[i] === 'u' ||
word[i] === 'y'
) {
result.push(i + 1);
}
}
return result;
}
findVowels('Nth'); // []
findVowels('Apple'); // [1, 5]
findVowels('Banana'); // [2, 4, 6]
findVowels('Orange'); // [1, 3, 6]
toLowerCase()
: 문자열을 소문자로 변환한다.
push()
: 배열의 끝에 새 element를 추가하고, 새로운 길이를 반환한다.
Solution 02
function findVowels(word) {
const vowels = 'aeiouyAEIOUY';
let arr = word.split('');
let result = [];
for (let i = 0; i < arr.length; i++) {
if (vowels.includes(arr[i])) {
result.push(i + 1);
}
}
return result;
}
findVowels('Nth'); // []
findVowels('Apple'); // [1, 5]
findVowels('Banana'); // [2, 4, 6]
findVowels('Orange'); // [1, 3, 6]
split()
: 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.
includes()
: 특정 값이 있는지 확인하고, true/false를 반환한다.
Solution 03
function findVowels(word) {
const vowels = ['a', 'e', 'i', 'o', 'u', 'y'];
word = word.toLowerCase();
let result = [];
for (let i = 0; i < word.length; i++) {
if (vowels.indexOf(word[i]) !== -1) {
result.push(i + 1);
}
}
return result;
}
findVowels('Nth'); // []
findVowels('Apple'); // [1, 5]
findVowels('Banana'); // [2, 4, 6]
findVowels('Orange'); // [1, 3, 6]
indexOf()
: 주어진 값이 처음으로 나타나는 위치를 반환한다. 일치하는 값이 없으면 -1을 반환한다.
Solution 04
function findVowels(word) {
const str = 'aeiouy';
let arr = word.toLowerCase().split('');
let result = [];
arr.forEach((i, index) => {
if (str.indexOf(i) !== -1) {
result.push(index + 1);
}
});
return result;
}
findVowels('Nth'); // []
findVowels('Apple'); // [1, 5]
findVowels('Banana'); // [2, 4, 6]
findVowels('Orange'); // [1, 3, 6]
forEach()
: 배열의 각 element에 대해, 제공된 함수를 차례로 한 번씩 호출한다.
Solution 05
function findVowels(word) {
let result = [];
for (let i = 0; i < word.length; i++) {
if (/[aeiouy]/i.test(word[i])) {
result.push(i + 1);
}
}
return result;
}
findVowels('Nth'); // []
findVowels('Apple'); // [1, 5]
findVowels('Banana'); // [2, 4, 6]
findVowels('Orange'); // [1, 3, 6]
test()
: 대응되는 문자열이 있는지 검색하고, true/false를 반환한다.
i
: 대소문자 구분 없는 검색