이번 글에서는 두 개의 숫자 m과 n을 입력받아, m의 배수 중 첫 n개를 배열로 반환하는 JavaScript 함수를 작성해 보겠습니다.
예를 들어, 입력값이 4와 6이라면 함수는 4의 배수 여섯 개를 순서대로 담은 배열을 반환해야 합니다.
const output = [4, 8, 12, 16, 20, 24];
구현 아이디어
가장 직관적인 방법은 반복문을 활용하는 것입니다. 시작값을 m으로 설정하고, 매 반복마다 m씩 값을 증가시키면서 결과 배열에 차례로 추가하면 됩니다. 이렇게 하면 총 n번의 반복으로 정확히 n개의 배수를 얻을 수 있습니다.
코드 예제
다음은 위 로직을 구현한 전체 코드입니다.
const num1 = 4;
const num2 = 6;
const multiples = (num1, num2) => {
const res = [];
for (let i = num1; i <= num1 * num2; i += num1) {
res.push(i);
}
return res;
};
console.log(multiples(num1, num2));코드 설명
- 초기값 설정: 반복 변수
i는 첫 번째 배수인num1부터 시작합니다. - 반복 조건:
i <= num1 * num2는 n번째 배수까지 포함하기 위한 조건입니다. n번째 배수는 곧m × n이므로, 이 값에 도달할 때까지 반복합니다. - 증감식:
i += num1을 통해 매번 m만큼 증가시켜 배수만을 순회합니다.
실행 결과
콘솔에 출력되는 결과는 다음과 같습니다.
[ 4, 8, 12, 16, 20, 24 ]
추가 팁: Array.from() 활용하기
반복문 대신 Array.from() 메서드를 사용하면 더 간결하게 표현할 수도 있습니다.
const multiples = (m, n) =>
Array.from({ length: n }, (_, index) => m * (index + 1));
console.log(multiples(4, 6)); // [ 4, 8, 12, 16, 20, 24 ]이 방식은 길이가 n인 배열을 생성한 뒤, 각 인덱스에 1을 더한 값에 m을 곱하여 배수를 계산합니다. 코드가 짧고 선언적이라 가독성 측면에서 유리합니다.