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

JavaScript로 배열의 마지막 n개 짝수만 추출하는 방법


문제 정의

숫자 배열을 첫 번째 인수로, 그리고 하나의 숫자(n)를 두 번째 인수로 받는 JavaScript 함수를 작성해야 합니다.

이 함수는 입력 배열에서 마지막 n개의 짝수를 찾아 새로운 배열 형태로 반환하는 역할을 수행합니다.

구현 예시

다음은 이 문제를 해결하는 코드입니다 −

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const num = 3;
const pickEvens = (arr = [], num = 1) => {
   const res = [];
   for(let index = arr.length - 1; index >= 0; index -= 1){
      if (res.length === num){
         break;
      };
      const number = arr[index];
      if (number % 2 === 0){
         res.unshift(number);
    };
   };
   return res;
};
console.log(pickEvens(arr, num));

코드 동작 원리

이 알고리즘의 핵심 로직은 다음과 같습니다.

1. 배열의 끝에서부터 순회 − 마지막 짝수를 먼저 찾아야 하므로, 인덱스를 배열 길이에서 1을 뺀 값부터 시작해 0까지 역방향으로 탐색합니다.

2. 짝수 판별 후 앞쪽에 삽입 − 요소가 짝수(2로 나눈 나머지가 0)라면 unshift() 메서드를 사용해 결과 배열의 맨 앞에 추가합니다. 이렇게 하면 최종 결과가 원래 배열의 순서를 그대로 유지하게 됩니다.

3. 목표 개수 도달 시 조기 종료 − 결과 배열의 길이가 n에 도달하면 break로 반복문을 즉시 중단하여 불필요한 연산을 줄입니다.

출력 결과

[4, 6, 8]

위 예제에서는 배열 [1, 2, 3, 4, 5, 6, 7, 8, 9]에서 뒤에서부터 짝수인 8, 6, 4를 찾아 원래 순서대로 [4, 6, 8]을 반환했습니다.