在 JavaScript 内部交换偶数和奇数索引对
我们需要编写一个JavaScript函数,它接受一个文字数组作为第一个也是唯一的参数。
我们的函数应该相互交换每个连续的偶数索引,并相互交换每个连续的奇数索引。
该函数应该就地进行这些交换。
例如-
如果输入数组是-
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8];
那么数组应该变成-
const output = [2, 3, 0, 1, 6, 7, 4, 5, 8];
因为0和2交换,1和3交换,4和6交换,5和7交换,最后8保持不变。
示例
以下是代码-
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8];
const swapPairs = (arr = []) => {
const swap = (array, ind1, ind2) => {
const temp = array[ind1];
arr[ind1] = arr[ind2];
arr[ind2] = temp;
};
let i = 0;
for(; i + 3 < arr.length; i += 4){
swap(arr, i, i + 2);
swap(arr, i + 1, i + 3);
};
if (i + 2 < arr.length){
swap(arr, i, i + 2);
};
};
swapPairs(arr);
console.log(arr);输出结果以下是控制台输出-
[ 2, 3, 0, 1, 6, 7, 4, 5, 8 ]