정말 이상합니다. 배열 중 하나를 수정하면 다른 하나는 수정됩니다! 배열을 두 번 입력하는 것 이외의 방식으로 작동시키지 못했습니다. 내가 무엇을 할 수 있을지? 다른 배열을 수정하면 배열이 수정됩니다.
function test(a,b,c,d)
{
this.a=a;
this.b=b;
this.c=c;
this.d=d;
}
var data0=data=[[1,2,3,4],[5,6,7,8]];
function construct(constructor,args)
{
function F(){return constructor.apply(this,args);}
F.prototype=constructor.prototype;
return new F();
}
for(var i=0,l=data.length;i<l;i++)
{
data[i]=construct(test,data[i]);
}
console.log(data0);
는
http://jsfiddle.net/mageek/3GNMC/2/
DATA0 및 데이터는 동일한 배열이다. 복제를 위해'data0 = data.slice (0); '를 사용하십시오 – mishik
당신은 배열의 개별 복사본을 생성하지 않고, 대신 동일한 배열에 대해 별도의 참조를 만듭니다. 배열을 복제/복사하는 방법에 대한 사이트를 검색하면 답변을 찾을 수 있습니다. –