지그재그 대소문자 변환 함수란?
이번 예제에서는 문자열을 입력받아 짝수 인덱스의 글자는 소문자로, 홀수 인덱스의 글자는 대문자로 변환한 새로운 문자열을 반환하는 함수를 작성해 보겠습니다. 대소문자가 번갈아 가며 나타나는 이러한 형태를 흔히 '지그재그 패턴'이라고 부릅니다.
예를 들어 Hello world라는 문자열이 주어지면, 첫 글자(인덱스 0)는 소문자, 두 번째 글자(인덱스 1)는 대문자로 바꾸는 식으로 전체 문자열을 처리하게 됩니다.
전체 코드
const text = 'Hello world, it is so nice to be alive.';
const changeCase = (str) => {
const newStr = str
.split("")
.map((word, index) => {
if (index % 2 === 0) {
return word.toLowerCase();
} else {
return word.toUpperCase();
}
})
.join("");
return newStr;
};
console.log(changeCase(text));코드 동작 원리
위 코드는 크게 세 단계로 동작합니다.
- split("") — 문자열을 한 글자씩 잘라내어 배열로 만듭니다.
- map() — 각 글자를 순회하면서 인덱스가 짝수(
index % 2 === 0)이면 소문자로, 홀수이면 대문자로 변환합니다. - join("") — 변환이 끝난 배열을 다시 하나의 문자열로 합친 뒤 결과를 반환합니다.
즉, 문자열 → 배열 → 각 글자 변환 → 문자열의 흐름으로 처리되며, 인덱스만으로 대소문자를 결정하기 때문에 별도의 조건 변수 없이 간결하게 구현할 수 있습니다.
실행 결과
콘솔에 출력되는 결과는 다음과 같습니다.
hElLo wOrLd, It iS So nIcE To bE AlIvE.
짝수 인덱스의 글자는 소문자로, 홀수 인덱스의 글자는 대문자로 교차하면서 변환된 것을 확인할 수 있습니다. 공백과 특수문자는 대소문자 구분이 없으므로 그대로 유지됩니다.