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

JavaScript divisibleBy() 함수 – 배열에서 나누어 떨어지는 숫자만 골라내기


문제 정의

숫자로 이루어진 배열과 하나의 숫자를 두 개의 인수로 받는 JavaScript 함수를 작성해야 합니다.

이 함수는 배열을 필터링하여 두 번째 인수로 전달된 숫자로 나누어 떨어지는 요소만 남긴 뒤, 그 결과 배열을 반환해야 합니다.

예제 코드

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

const arr = [56, 33, 2, 4, 9, 78, 12, 18];
const num = 3;
const divisibleBy = (arr = [], num = 1) => {
    const canDivide = (a, b) => a % b === 0;
    const res = arr.filter(el => {
        return canDivide(el, num);
    });
    return res;
};
console.log(divisibleBy(arr, num));

코드 설명

divisibleBy 함수는 두 개의 매개변수를 받습니다. 첫 번째는 대상 배열이고, 두 번째는 나누는 기준이 되는 숫자입니다(기본값은 1).

내부의 canDivide 헬퍼 함수는 모듈로 연산자(%)를 사용해 a를 b로 나눈 나머지가 0인지 확인합니다. 나머지가 0이라면 a는 b로 나누어 떨어진다는 의미입니다.

이후 Array.prototype.filter() 메서드를 통해 배열의 각 요소를 검사하고, 조건을 만족하는 요소들만 모아 새로운 배열로 반환합니다. filter()는 원본 배열을 변경하지 않으므로 안전하게 사용할 수 있습니다.

출력 결과

[ 33, 9, 78, 12, 18 ]

배열 [56, 33, 2, 4, 9, 78, 12, 18] 중에서 3으로 나누어 떨어지는 숫자는 33, 9, 78, 12, 18이므로 위와 같은 결과가 출력됩니다.