我们需要编写一个包含数字数组的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 ]