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(结果);