함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
x | n | answer |
---|---|---|
2 | 5 | [2,4,6,8,10] |
4 | 3 | [4,8,12] |
-4 | 2 | [-4, -8] |
function solution(x, n) {
let answer = [];
for (let i=0; i<n; i++) {
answer.push(x + x*i);
}
return answer;
}
n개만큼 숫자가 존재해야하므로, for문을 n번 돌리도록 설정하였다. 반복문을 돌며 x씩 증가하는 x의 값을 answer에 push하였다. while문도 비슷하게 만들 수 있을 것 같다.
while문 사용
function solution(x, n) {
let answer = [];
let i = 0;
while(answer.length !== n) {
answer.push(x + (x*i));
i++;
}
return answer;
}
function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
n개 만큼의 배열을 만들어 x로 채우는데, 각각의 요소는 (해당 요소의 인덱스 + 1) * (해당 요소의 value === x)만큼 곱해서 다시 배열을 리턴하는 방법을 생각하지 못해서 놀랐다. Array().fill()
과 같은 방법도 기억해두어야 겠다.
매개변수가 1개이고 숫자인 경우 매개변수로 전달된 숫자를 length 값으로 가지는 빈배열을 생성한다.
let arr = new Array(2);
console.log(arr); //(2) [empty * 2]
console.log(arr.length); //2
fill()
메서드는 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로 채운다.
arr.fill(value[, start [, end]])
this.length