Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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
从javascript函数创建多个数组_Javascript_Arrays - Fatal编程技术网

从javascript函数创建多个数组

从javascript函数创建多个数组,javascript,arrays,Javascript,Arrays,我试图在每次运行此函数时创建一个单独的数组,目前它似乎每次运行时都会在函数上写入 我该怎么做呢?谢谢你的帮助 <script> var a = [[4,1,2],[3,7,9],[2,3,5]]; function swap(x,y,m,n){ var src=x; var dest = y; var tmp = a[x][y]; a[x][y] = a[m][n]; a[m][n] = tmp; newArray = new Arr

我试图在每次运行此函数时创建一个单独的数组,目前它似乎每次运行时都会在函数上写入

我该怎么做呢?谢谢你的帮助

<script>
var a = [[4,1,2],[3,7,9],[2,3,5]];

function swap(x,y,m,n){
    var src=x;
    var dest = y;
    var tmp = a[x][y];
    a[x][y] = a[m][n];
    a[m][n] = tmp;
    newArray = new Array(a);
    return newArray;
}

var tmp1 = new Array(swap(1,0,0,0));
var tmp2 = new Array(swap(1,0,2,0));
document.write(tmp1 + "<br>" + tmp2 + " <br>" + a);
</script>

在函数内声明一个变量b,该变量用作数组a的临时副本,防止在函数期间对其进行更改

   <script>
    var a = [[4,1,2],[3,7,9],[2,3,5]];

    function swap(x,y,m,n){
        var b = a;
        var src=x;
        var dest = y;
        var tmp = b[x][y];
        b[x][y] = b[m][n];
        b[m][n] = tmp;
        newArray = new Array(b);
        return newArray;
    }

    var tmp1 = new Array(swap(1,0,0,0));
    var tmp2 = new Array(swap(1,0,2,0));
    document.write(tmp1 + "<br>" + tmp2 + " <br>" + a);
    </script>

在修改阵列之前克隆阵列。基本上,您可以在函数中更改顺序。