습관처럼 새로운 빈 배열을 만들 때는 new Array(n).fill(x)
를 이용했다.
빈(empty
) 상태로 메서드 이용하여 가공하기는 쉽지가 않았다.
console.log(new Array(10)); // [ <10 empty items> ]
console.log(new Array(10).map((v, j) => j)); // [ <10 empty items> ]
해결책은 바로 임의값을 채운 뒤에 가공하는 것 이었다.
console.log(new Array(10).fill(0));
/*
[
0, 0, 0, 0, 0,
0, 0, 0, 0, 0
]
*/
console.log(new Array(10).fill(0).map((v, j) => j));
/*
[
0, 1, 2, 3, 4,
5, 6, 7, 8, 9
]
*/
.fill(x)
를 이용하는 것보다 이해가 쉽고(직관적이고), 훨씬 간결한 방법이 있었다.
empty
)값이 아닌 undefined
값이 들어감.console.log([...new Array(10)]);
/*
[
undefined, undefined,
undefined, undefined,
undefined, undefined,
undefined, undefined,
undefined, undefined
]
*/
.fill(undefined)
의 효과를 보여줌.console.log(new Array(10).fill(undefined));
/*
[
undefined, undefined,
undefined, undefined,
undefined, undefined,
undefined, undefined,
undefined, undefined
]
*/
console.log([...new Array(10)].map((v, j) => j));
/*
[
0, 1, 2, 3, 4,
5, 6, 7, 8, 9
]
*/