首页 > 解决方案 > 递归地在数组之间交换元素javascript

问题描述

如何递归地将最后 2 个数组元素与其他数组的前 2 个元素交换?

例子:

arr1 : [1,2,3,4,5]
arr2 : [6,7,8,9,10]
arr3 : [11,12,13,14,15]
arr4 : [16,17,18,19,20]

......

期望的结果:

arr1 : [1,2,3,6,7]
arr2 : [4,5,8,11,12]
arr3 : [9,10,13,16,17]
arr4 : [14,15,18,...]

标签: javascriptarraysecmascript-6

解决方案


像这样的东西?

var arrays = [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15], [16, 17, 18, 19, 20]];
console.log(arrays);
if(arrays.length > 1) {
  var swapping = [];
  for(i = 0; i < (arrays.length - 1); i++) {
    swapping = [arrays[i][arrays[i].length - 1], arrays[i][arrays[i].length - 2]];
    arrays[i][arrays[i].length - 1] = arrays[i + 1][1];
    arrays[i][arrays[i].length - 2] = arrays[i + 1][0];
    arrays[i + 1][1] = swapping[0];
    arrays[i + 1][0] = swapping[1];
  };
};
console.log(arrays);


推荐阅读