반응형
1. 길이 n의 array생성
let arr = new Array(n);
2. array의 값을 k로 초기화
arr.fill(value);
길이 n 배열 생성 및 초기화
let arr = new Array(n).fill(value);
주의할 점 : n차원 배열 초기화는 안된다.
n차원 배열을 초기화할 때 .fill(new Array())를 하게되면 같은 주소를 공유하는 문제가 발생한다.
예를 들어 2차원 빈 배열을 초기화한다고 해보자.
let array2D = new Array(4).fill(new Array());
console.log(array2D);
길이 4의 2차원배열이 제대로 초기화된 것처럼 보인다. 하지만 index 1에 값을 넣는 순간 문제가 발생한다.
array2D[1].push(2);
배열의 모든 위치에 값이 들어갔다. 왜 이런 문제가 발생한 것일까?
array2D[0] === array2D[1]
바로 배열 안의 배열들이 전부 같은 주소를 사용한다는 것이다. 완전히 똑같은 것이기 때문에 이렇게 하면 안된다.
따라서 2차원배열을 초기화 할 때는 반복문으로 한개씩 넣어줘야 한다.
2차원 배열 초기화
let array2D = new Array();
for(let i = 0; i < N; i++) array2D.push(new Array());
참고.
https://stackoverflow.com/questions/4852017/how-to-initialize-an-arrays-length-in-javascript
반응형
'Development > Javascript' 카테고리의 다른 글
Javascript. Swap (0) | 2020.08.26 |
---|---|
Javascript. array of array에서 가장 긴 array index 찾기 (0) | 2020.08.20 |
Javascript. JSON 데이터 추가(add) / 삭제(delete) (0) | 2020.08.10 |
Javascript. 진짜로 Deep Copy하기 (0) | 2020.08.10 |
Javascript. Windows 터미널 창에서 nodejs를 실행할 때 화면을 clear하는 방법 (0) | 2020.08.10 |