Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 我需要为我创建的二维数组添加一个值_Arrays_Actionscript 3_Matrix - Fatal编程技术网

Arrays 我需要为我创建的二维数组添加一个值

Arrays 我需要为我创建的二维数组添加一个值,arrays,actionscript-3,matrix,Arrays,Actionscript 3,Matrix,因此,我使用以下代码创建了一个二维数组: var grid:Array = [ [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1], [1, 1, 1, 1] ] 我有一个按钮(理论上)将把一个值拼接到每一行,从而扩展网格宽度。然而,问题似乎不在我的代码中,而是在我将垂直增长和水平增长结合起来时 以下是我尝试用于增加高度的当前代码: var insertTo:int = 1; var temp:Array = grid[0]; grid.splice(1, 0

因此,我使用以下代码创建了一个二维数组:

var grid:Array = [
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1],
[1, 1, 1, 1]
]
我有一个按钮(理论上)将把一个值拼接到每一行,从而扩展网格宽度。然而,问题似乎不在我的代码中,而是在我将垂直增长和水平增长结合起来时

以下是我尝试用于增加高度的当前代码:

var insertTo:int = 1;

var temp:Array = grid[0];

grid.splice(1, 0, temp);
for (var i:int = 0; i < grid.length; i++){

    var insertTo:int = 1;

    grid[i].splice(insertTo, 0, 1); 

}
下面是我试图用于增加宽度的当前代码:

var insertTo:int = 1;

var temp:Array = grid[0];

grid.splice(1, 0, temp);
for (var i:int = 0; i < grid.length; i++){

    var insertTo:int = 1;

    grid[i].splice(insertTo, 0, 1); 

}
以下是反向操作后的预期结果:

After width increase:
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1

After height increase:
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1
1,1,1,1,1

为什么它以一种方式工作而不是另一种方式工作,我该如何修复它?

在将数组作为新值插入之前,必须克隆它

Array类没有用于制作数组副本的内置方法。 可以通过调用 不带参数的concat()或slice()方法。在浅拷贝中,如果 原始数组中的元素是对象,只有引用 复制到对象,而不是复制对象本身。副本 指向与原始对象相同的对象。对其所做的任何更改 对象在两个阵列中都会反射


为什么不使用
push
来代替拼接?非常感谢!现在100%有效了。帮了大忙。