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