문제 이해하기
두 개의 숫자 m과 n을 입력받아, m의 첫 번째 배수부터 n번째 배수까지 차례대로 담은 배열을 반환하는 JavaScript 함수를 작성해야 합니다.
예를 들어, 입력값이 4와 6이라면 함수는 4의 배수 여섯 개를 순서대로 담은 배열을 반환해야 합니다.
입력 예시
const num1 = 4;
const num2 = 6;
기대 출력
const output = [4, 8, 12, 16, 20, 24];
for 반복문을 활용한 풀이
가장 직관적인 방법은 for 반복문을 사용하는 것입니다. 반복 변수 i를 num1로 초기화하고, 매 반복마다 num1씩 값을 증가시키면서 총 num2개의 요소를 배열에 추가하면 됩니다. 반복 조건은 i가 num1 * num2 이하일 때까지만 유지되므로 정확히 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));
실행 결과
위 코드를 실행하면 콘솔에 다음과 같이 출력됩니다.
[ 4, 8, 12, 16, 20, 24 ]
Array.from()을 활용한 더 간결한 방법
반복문 없이 한 줄로 해결하고 싶다면 Array.from() 메서드를 활용할 수 있습니다. 배열의 길이를 n으로 지정하고, 두 번째 인자로 전달하는 콜백 함수에서 각 인덱스에 m을 곱한 값을 반환하면 원하는 배수 배열이 바로 생성됩니다.
const multiples = (m, n) => Array.from({ length: n }, (_, i) => m * (i + 1));
console.log(multiples(4, 6)); // [ 4, 8, 12, 16, 20, 24 ]Array.from() 방식은 코드가 더 선언적이고 간결해서 의도를 한눈에 파악하기 쉽다는 장점이 있습니다. 상황에 따라 반복문 기반 풀이와 함께 활용해 보세요.