오도원입니다.

건강과 행복을 위하여

Development/Javascript

Javascript. 길이 n의 array를 특정 값으로 초기화하기; How to initialize an array's length.

오도원공육사 2020. 8. 20. 18:03
반응형

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

반응형