문제 정의
숫자로 이루어진 배열을 입력받는 자바스크립트 함수를 작성해야 합니다. 배열 안에 ASCII 코드 기준으로 모음(a, e, i, o, u)에 해당하는 문자 코드와 일치하는 숫자가 존재한다면, 해당 숫자를 대응하는 모음 문자로 바꾼 뒤 새로운 배열을 반환하면 됩니다.
예제 코드
다음은 이 문제를 해결하는 코드입니다.
const arr = [5, 23, 67, 101, 56, 111];
const changeVowel = (arr = []) => {
for (let i = 0, l = arr.length; i < l; ++i) {
let char = String.fromCharCode(arr[i]);
if ('aeiou'.indexOf(char) !== -1) {
arr[i] = char;
};
};
return arr;
};
console.log(changeVowel(arr));
출력 결과
[ 5, 23, 67, 'e', 56, 'o' ]
코드 동작 원리
이 코드의 핵심은 String.fromCharCode() 메서드입니다. 이 메서드는 숫자 값을 받아 해당하는 ASCII 문자로 변환해 줍니다. 예를 들어 101은 'e'로, 111은 'o'로 변환됩니다.
변환된 문자가 모음을 담고 있는 문자열 'aeiou'에 포함되어 있는지 indexOf() 메서드로 확인합니다. 만약 포함되어 있다면(indexOf의 반환값이 -1이 아니라면), 배열의 해당 요소를 숫자 대신 모음 문자로 교체합니다.
위 예제에서 101과 111만 각각 'e'와 'o'에 해당하므로, 최종 출력 배열에서 이 두 숫자만 문자로 변경된 것을 확인할 수 있습니다.