JavaScript - 문제 미리보기

문제 697

hard
다음 코드의 실행 결과는?

const myNumbers = [4, 1, -20, -7, 5, 9, -6];

function removeNeg(numbers, callback) {
    const myArray = [];
    for (const x of numbers) {
        if (callback(x)) {
            myArray.push(x);
        }
    }
    return myArray;
}

const result = removeNeg(myNumbers, (x) => x >= 0);
console.log(result);
A. [4, 1, 5, 9]
B. [-20, -7, -6]
C. [4, 1, -20, -7, 5, 9, -6]
D. []

정답: A

이 코드는 배열에서 조건에 맞는 요소만 필터링하는 함수입니다.

1) removeNeg 함수는 배열과 콜백 함수를 받습니다
2) 콜백 함수 (x) => x >= 0는 각 요소가 0보다 크거나 같은지 검사합니다
3) for 루프에서 각 요소를 콜백 함수에 전달하여 true가 반환되면 myArray에 추가합니다
4) 원본 배열 [4, 1, -20, -7, 5, 9, -6]에서 0 이상인 요소는 4, 1, 5, 9입니다

이런 패턴은 JavaScript의 Array.filter() 메서드와 같은 원리로 동작하며, 콜백 함수를 활용한 함수형 프로그래밍의 좋은 예시입니다.

💡 학습 팁

이 문제를 포함한 JavaScript 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.