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

JavaScript에서 배열의 모든 요소를 홀수로 변환하는 방법

배열에 담긴 숫자들을 조건에 따라 가공해야 하는 경우가 종종 있습니다. 이번 글에서는 배열의 모든 요소를 홀수로 만드는 JavaScript 함수를 작성하는 방법을 알아보겠습니다.

문제 정의

숫자 배열을 입력받아 다음 규칙에 따라 각 요소를 변환한 뒤, 새로운 배열을 반환하는 함수를 작성해야 합니다.

  • 요소가 홀수라면 그대로 유지합니다.
  • 요소가 짝수라면 1을 빼서 홀수로 만듭니다.

예를 들어, [5, 23, 6, 3, 66, 12, 8]이라는 배열이 주어지면 결과는 [5, 23, 5, 3, 65, 11, 7]이 되어야 합니다.

구현 예시

가장 기본적인 방법은 반복문과 나머지 연산자(%)를 활용하는 것입니다.

const arr = [5, 23, 6, 3, 66, 12, 8];

const reduceToOdd = (arr = []) => {
  const res = [];
  for (let i = 0; i < arr.length; i++) {
    const el = arr[i];
    if (el % 2 === 1) {
      res.push(el);
    } else {
      res.push(el - 1);
    }
  }
  return res;
};

console.log(reduceToOdd(arr));

실행 결과

위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.

[ 5, 23, 5, 3, 65, 11, 7 ]

더 간결한 방법: map() 활용하기

반복문 대신 Array.prototype.map() 메서드를 사용하면 코드를 훨씬 간결하게 작성할 수 있습니다.

const reduceToOdd = (arr = []) =>
  arr.map(el => (el % 2 === 0 ? el - 1 : el));

console.log(reduceToOdd([5, 23, 6, 3, 66, 12, 8]));
// [ 5, 23, 5, 3, 65, 11, 7 ]

map()은 원본 배열을 변경하지 않고 새로운 배열을 반환하므로, 부작용(side effect) 없이 안전하게 데이터를 변환할 수 있다는 장점이 있습니다.

정리

  • 나머지 연산자 %를 사용해 짝수와 홀수를 판별할 수 있습니다.
  • 짝수에서 1을 빼면 항상 홀수가 되므로 별도의 복잡한 로직이 필요하지 않습니다.
  • 간결성과 가독성을 고려한다면 map()을 사용한 방식이 권장됩니다.