Javascript 交换任意三维数组值

Javascript 交换任意三维数组值,javascript,arrays,Javascript,Arrays,我有以下数组: array = [[[1,2],[4,5]],[[6,7],[8,9]]]; 我希望得到以下结果: easyArray = [[[2,1],[5,4]],[[7,6],[9,8]]]; 我试过了 function swapCoordinates(array){ var a=0; var b=0; for (j=0;j<array[0].length;j++){ for (k=0;k<array[0][0].length;k++){

我有以下数组:

array = [[[1,2],[4,5]],[[6,7],[8,9]]];
我希望得到以下结果:

easyArray = [[[2,1],[5,4]],[[7,6],[9,8]]];
我试过了

function swapCoordinates(array){
var a=0;
var b=0;
    for (j=0;j<array[0].length;j++){
        for (k=0;k<array[0][0].length;k++){
            var swap = array[a][b][0];
            array[a][b][0] = array[a][b][1];
            array[a][b][1] = swap
            console.log(a);
            a++;
            console.log(b);

        }
        console.log(a);
        console.log(b);
        b++

    }

return array;
}
函数交换坐标(数组){
var a=0;
var b=0;

对于(j=0;j您可以使用递归方法,检查该项是否是一个数组,其中是否包含另一个数组

然后映射数组或返回交换的项

var数组=[[1,2],[4,5],[[6,7],[8,9],
swapped=array.map(函数交换(a){
返回Array.isArray(a)和&Array.isArray(a[0])
?a.map(交换)
:a.切片().反转();
});
console.log(已交换);
。作为控制台包装{max height:100%!important;top:0;}
您可以执行以下操作

var数组=[[1,2],[4,5],[[6,7],[8,9]],
swap3D=([e0,e1,…es])=>e0?数组。isArray(e0)?[swap3D(e0)]。concat(swap3D([e1,…es]))
:[e1,e0]
: [],
result=JSON.stringify(swap3D(数组));
console.log(结果);