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

JavaScript로 배열에서 홀수가 아닌 숫자만 골라 새 배열 만들기

문제 소개

숫자로 이루어진 배열을 하나 입력받는 JavaScript 함수를 작성해야 합니다. 이 함수는 원본 배열의 요소 중 홀수가 아닌 숫자(짝수)만 골라내어 새로운 배열을 구성한 뒤, 그 배열을 반환하는 역할을 합니다.

예를 들어 [5, 32, 67, 23, 55, 44, 23, 12] 같은 배열이 주어졌다면, 결과적으로 [32, 44, 12]를 담은 배열이 출력되어야 합니다.

구현 방법

가장 기본적인 접근은 반복문을 사용하는 것입니다. 배열을 처음부터 끝까지 순회하면서 각 요소를 2로 나눈 나머지가 1인지 검사하고, 홀수가 아니라면 결과 배열에 추가하면 됩니다.

const arr = [5, 32, 67, 23, 55, 44, 23, 12];
const findNonOdd = (arr = []) => {
  const res = [];
  for (let i = 0; i < arr.length; i++) {
    const el = arr[i];
    if (el % 2 !== 1) {
      res.push(el);
    }
  }
  return res;
};
console.log(findNonOdd(arr));

실행 결과

[ 32, 44, 12 ]

코드 설명

  • 빈 배열 res를 먼저 선언하여 결과를 담을 그릇을 준비합니다.
  • for 문으로 입력 배열을 순회하면서 각 요소를 변수 el에 저장합니다.
  • el % 2 !== 1 조건으로 해당 숫자가 홀수가 아닌지 판별합니다.
  • 조건을 통과한 요소만 push() 메서드로 결과 배열에 추가합니다.

더 간결한 대안: filter() 활용하기

JavaScript의 내장 메서드 filter()를 사용하면 위 로직을 훨씬 짧고 선언적으로 표현할 수 있습니다.

const findNonOdd = (arr = []) => arr.filter((num) => num % 2 === 0);

console.log(findNonOdd([5, 32, 67, 23, 55, 44, 23, 12]));
// 결과: [ 32, 44, 12 ]

filter()는 콜백 함수가 true를 반환하는 요소만 모아 새 배열을 만들어주므로, 별도의 임시 배열이나 반복문 없이 의도를 한 줄로 명확하게 드러낼 수 있다는 장점이 있습니다.

마무리

배열에서 특정 조건을 만족하는 요소만 추출하는 것은 실무에서 매우 자주 마주치는 작업입니다. 반복문 기반 코드와 filter() 기반 코드를 함께 익혀두면 상황과 팀의 코드 스타일에 맞게 유연하게 선택할 수 있습니다.