Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 문자열의 홀수/짝수 인덱스 문자를 대문자·소문자로 변환하는 방법

JavaScript에서 문자열을 다루다 보면 인덱스 위치에 따라 각 문자의 대소문자를 다르게 변환해야 하는 경우가 있습니다. 이번 글에서는 짝수 인덱스의 문자는 소문자로, 홀수 인덱스의 문자는 대문자로 변환하여 새로운 문자열을 반환하는 함수를 작성해 보겠습니다.

구현 아이디어

핵심 로직은 다음과 같습니다.

  • 문자열을 한 글자씩 분리(split)하여 배열로 만든다.
  • map() 메서드로 각 문자를 순회하면서 인덱스가 짝수인지 홀수인지 판별한다.
  • 짝수 인덱스면 toLowerCase(), 홀수 인덱스면 toUpperCase()를 적용한다.
  • 마지막으로 join()으로 배열을 다시 하나의 문자열로 합쳐 반환한다.

전체 코드 예제

const text = 'Hello world, it is so nice to be alive.';

const changeCase = (str) => {
  const newStr = str
    .split("")
    .map((char, index) => {
      if (index % 2 === 0) {
        return char.toLowerCase();
      } else {
        return char.toUpperCase();
      }
    })
    .join("");
  return newStr;
};

console.log(changeCase(text));

코드 설명

위 코드는 먼저 split("")을 사용해 문자열을 개별 문자 배열로 변환합니다. 그런 다음 map() 메서드로 각 문자와 해당 인덱스를 받아, 인덱스를 2로 나눈 나머지(index % 2)를 기준으로 짝수 여부를 판별합니다.

나머지가 0이면 짝수 인덱스이므로 소문자로, 그렇지 않으면 홀수 인덱스이므로 대문자로 변환합니다. 모든 문자의 변환이 끝나면 join("")으로 배열을 다시 문자열로 결합하여 반환합니다.

실행 결과

hElLo wOrLd, It iS So nIcE To bE AlIvE.

정리

이처럼 split(), map(), join() 세 가지 배열 메서드만 활용하면 별도의 반복문 없이도 간결하게 인덱스 기반 대소문자 변환을 구현할 수 있습니다. 화살표 함수와 삼항 연산자를 사용하면 코드를 더욱 축약할 수도 있습니다.