js手动实现reverse
手动实现 JavaScript 的 reverse 方法
JavaScript 的 reverse 方法用于反转数组的元素顺序。以下是手动实现该功能的几种方式:

使用循环交换元素
通过循环遍历数组的前半部分,将元素与对称位置的元素交换:

function reverseArray(arr) {
for (let i = 0; i < Math.floor(arr.length / 2); i++) {
const temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
return arr;
}
使用 reduce 方法
通过 reduce 从后向前构建新数组:
function reverseArray(arr) {
return arr.reduce((acc, _, index) => {
acc.push(arr[arr.length - 1 - index]);
return acc;
}, []);
}
使用递归
递归方式反转数组:
function reverseArray(arr, index = 0) {
if (index >= Math.floor(arr.length / 2)) return arr;
const temp = arr[index];
arr[index] = arr[arr.length - 1 - index];
arr[arr.length - 1 - index] = temp;
return reverseArray(arr, index + 1);
}
注意事项
- 上述方法均会修改原数组(除
reduce的纯函数实现外)。 - 若需保留原数组,可先复制数组再操作:
function reverseArray(arr) { const copy = [...arr]; for (let i = 0; i < Math.floor(copy.length / 2); i++) { [copy[i], copy[copy.length - 1 - i]] = [copy[copy.length - 1 - i], copy[i]]; } return copy; }






