Flash AS3数组问题 var firstarray:Array=new Array(); 函数tracerray(arr:Array){ 对于(变量i:int=0;i

Flash AS3数组问题 var firstarray:Array=new Array(); 函数tracerray(arr:Array){ 对于(变量i:int=0;i,flash,actionscript-3,arrays,Flash,Actionscript 3,Arrays,跟踪结果是否应该是 1,0,0,11,0,0,11,0,0,0,11,0,0,0,1 1,0,0,11,0,0,11,0,0,0,11,0,0,0,1 1,0,0,11,0,0,1你好 或 1,0,0,11,0,0,11,0,0,0,11,0,0,0,1 1,0,0,11,0,0,11,0,0,0,11,0,0,0,1 1,0,0,11,0,0,1 它将输出: var firstarray:Array = new Array(); function traceArray(arr:Arra

跟踪结果是否应该是

1,0,0,11,0,0,11,0,0,0,11,0,0,0,1
1,0,0,11,0,0,11,0,0,0,11,0,0,0,1
1,0,0,11,0,0,1你好

1,0,0,11,0,0,11,0,0,0,11,0,0,0,1
1,0,0,11,0,0,11,0,0,0,11,0,0,0,1
1,0,0,11,0,0,1

它将输出:

 var firstarray:Array = new Array();


 function traceArray(arr:Array){    
  for(var i:int = 0; i < arr.length; ++i) {
       trace(firstarray[i].matrix);    
  } 
 }



 for (var i:int = 0; i < 10; ++i) {   
  firstarray.push({ matrix:[1,0,0,1], prod:i}); 
 }

 var secondarray:Array = new Array();
 secondarray = firstarray;
 secondarray.push({ matrix:"hello" });

 traceArray(firstarray);
这是因为您正在将secondarray设置为与firstarray相同的数组引用

如果要将firstarray的内容复制到secondarray,请使用concat():

实际上,由于在数组中使用数组,可能需要循环每个元素并复制每个矩阵项的内容。(很抱歉编辑,但我刚记起来。)

1,0,0,1
1,0,0,1
1,0,0,1
1,0,0,1
1,0,0,1
1,0,0,1
1,0,0,1
1,0,0,1
1,0,0,1
1,0,0,1
hello
secondarray = firstarray.concat();