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

JavaScript로 배열에서 특정 숫자보다 크거나 작은 요소 개수 구하기


다음과 같은 숫자 배열이 있다고 가정해 보겠습니다.

const arr = [3, 5, 5, 2, 23, 4, 7, 8, 8, 9];

우리는 이 배열과 하나의 숫자 n을 인자로 받아, n보다 큰 요소의 개수와 n보다 작은 요소의 개수를 각각 담고 있는 객체를 반환하는 JavaScript 함수를 작성해야 합니다.

예제

다음은 해당 코드입니다.

const arr = [3, 5, 5, 2, 23, 4, 7, 8, 8, 9];
const smallerLargerNumbers = (arr, num) => {
    return arr.reduce((acc, val) => {
        let { greater, smaller } = acc;
        if(val > num){
            greater++;
        };
        if(val < num){
            smaller++;
        };
        return { greater, smaller };
    }, {
        greater: 0,
        smaller: 0
    });
};
console.log(smallerLargerNumbers(arr, 3));

출력 결과

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

{ greater: 8, smaller: 1 }

이 코드는 reduce() 메서드를 활용하여 배열의 모든 요소를 한 번씩 순회합니다. 각 요소가 기준 숫자보다 크면 greater 값을, 작으면 smaller 값을 1씩 증가시키며, 초기값은 { greater: 0, smaller: 0 }으로 설정되어 있습니다. 모든 요소의 순회가 끝나면 두 개수가 담긴 객체가 최종적으로 반환됩니다.

위 예제에서 기준값이 3인 경우, 3보다 큰 요소는 총 8개이고 3보다 작은 요소는 2 하나뿐이므로 1개입니다. 참고로 기준값과 같은 요소(여기서는 3)는 어느 쪽에도 포함되지 않습니다. 만약 같은 값도 포함하고 싶다면 조건문에 >= 또는 <= 연산자를 사용하면 됩니다.