使用 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
]

更新日期: 22-Jan-2021

452 次浏览

职业崭露头角

通过完成课程获得认证

开始
广告