我们需要编写一个 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 ]