🙌문제설명
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
☑️나의 풀이
function solution(x, n) {
var ans = [];
for(let i=0; i<n; i++){
ans.push(x+i);
}
return ans;
}
for문을 map 함수로 표현할 수 있을 것 같다고 생각함... 코드는 작성하지 못함
❓다른 사람 풀이
function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
☑️배운 점
Array.fill
배열의 인덱스 범위 내에 있는 모든 요소를 정적 값으로 변경
인자가 없으면 undefine
const h = 10;
const w = 10;
const grid = Array(h * w).fill().map((arr, i) => { // (arr: 현재값, i:인덱스)
return i
})
//Array(h * w).fill()의 각 값(undefined)10*10을 map()을 통해 하나씩 불러와서 i로 return
//map()은 각각 return한 값으로 이루어진 배열을 생성함
//생성된 배열이 grid가 됨!!
console.log(grid);
//console
[
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, ... 99]
Array fill() + map()으로 배열을 생성할 수 있다.