在TypeScript中,你可以使用以下方法来更改数组元素的位置,将奇数索引的元素移动到偶数索引的位置,同时将偶数索引的元素移动到奇数索引的位置。
function swapOddEven(arr: number[]): number[] {
let oddIndex = 0;
let evenIndex = 1;
while (oddIndex < arr.length && evenIndex < arr.length) {
// 找到下一个奇数索引的元素
while (oddIndex < arr.length && oddIndex % 2 === 0) {
oddIndex++;
}
// 找到下一个偶数索引的元素
while (evenIndex < arr.length && evenIndex % 2 === 1) {
evenIndex++;
}
// 交换奇数索引和偶数索引的元素
if (oddIndex < arr.length && evenIndex < arr.length) {
[arr[oddIndex], arr[evenIndex]] = [arr[evenIndex], arr[oddIndex]];
}
}
return arr;
}
// 示例
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const result = swapOddEven(arr);
console.log(result); // 输出: [2, 1, 4, 3, 6, 5, 8, 7, 9]
这个函数通过两个指针(oddIndex
和 evenIndex
)来遍历数组,分别找到奇数索引和偶数索引的元素,并将它们交换位置。当两个指针都到达数组末尾时,循环结束。
领取专属 10元无门槛券
手把手带您无忧上云