将奇数偶数索引与JavaScript中的值匹配

我们需要编写一个包含数字数组的JavaScript函数。作为函数输入的给定数组具有两个特殊属性-

  • 数组的长度将始终为偶数。

  • 数组中的偶数和奇数始终是相等的(即,都等于数组长度的一半)

该函数应重新排列数组的元素,以使所有偶数均占据偶数索引,而所有奇数均占据奇数索引。

请注意,针对此问题可能有不止一种正确的解决方案,我们需要找到其中一种。

示例

以下是代码-

const arr = [1, 2, 3, 4, 5, 6];
const arrangeToIndices = (arr = []) => {
   let [even, odd] = [0, 1];
   while (even <arr.length&& odd < arr.length) {
      if (arr[even] % 2 === 1 && arr[odd] % 2 === 0) {
         [arr[even], arr[odd]] = [arr[odd], arr[even]];
         [even, odd] = [even + 2, odd + 2];
      } else {
         if (0 === arr[even] % 2){
            even += 2;
         };
         if (1 === arr[odd] % 2){
            odd += 2
         };
      };
   };
   return arr;
};
console.log(arrangeToIndices(arr));
输出结果

以下是控制台输出-

[ 2, 1, 4, 3, 6, 5 ]