在 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 ]

更新于:2021 年 1 月 18 日

165 次浏览

开启你的 事业

完成课程获得认证

立即开始
广告
© . All rights reserved.