자바스크립트

자바스크립드 - 다차원 배열 테스트

안녕1999 2017. 3. 1. 23:30

자바스크립트에서는 아래와 같이 배열 선언가능

var a=new Array();



function new_Array2(a,b)

{

var i,r=new Array(a);

for(i=0;i<b;i++)

{

r[i]=new Array(b);//각 요소마다 배열을 선언해주어야 한다.

}

return r;

}


※주의 : 배열 차원을 잘못 사용하면, 배열전체가 초기화됨(자바언어의 특징)

예) 2차원 배열 -> 1차원 배열로 사용할 경우

var a2=new_Array2(3,4);


a2[0][0]=2;

a2[0]=10;//a2를 다른형태로 사용하면, 배열전체가 바뀌어버림,

console.log("a2[0]=",a2[0]);//a2[0]= 10

console.log("a2[0][0]=",a2[0][0]);//undefined



※배열차원을 넘어서면, 에러.

예) 2차배열을 3차배열로 사용할 경우.

//a3[0][0][1][2]=3;//j.c:306 Uncaught TypeError: Cannot set property '2' of undefined




function test_new_Array2()

{

console.log("test_new_Array2()");

var a2=new_Array2(3,4);


//a2[0]=10;//a2를 다른형태로 사용(선언)하면, 바뀌어버림,

//console.log("a2[0]=",a2[0]);//a2[0]= 10

console.log("a2[0][0]=",a2[0][0]);//undefined

console.log("a2[0][1]=",a2[0][1]);//undefined

a2[0][0]=2;

console.log("-a2[0][0]=",a2[0][0]);//undefined ???? a2를 다른형태로 사용(선언)하면, 바뀌어버림,

a2[0][1]=3;

//a2[0][1][2]=3;//undefined

console.log("a2[0][1]=",a2[0][1]);//ok

//console.log("a2[0][1][2]=",a2[0][1][2]);//undefined

}

test_new_Array2();