js实现reverse
JavaScript 实现数组反转
JavaScript 中实现数组反转可以通过多种方法完成,以下是几种常见的方式:
使用 Array.prototype.reverse() 方法
这是最简单直接的方法,reverse() 方法会原地反转数组的顺序,并返回反转后的数组。
const arr = [1, 2, 3, 4, 5];
const reversedArr = arr.reverse();
console.log(reversedArr); // 输出: [5, 4, 3, 2, 1]
手动实现反转
可以通过遍历数组并交换元素位置来实现反转。

function reverseArray(arr) {
const reversed = [];
for (let i = arr.length - 1; i >= 0; i--) {
reversed.push(arr[i]);
}
return reversed;
}
const arr = [1, 2, 3, 4, 5];
const reversedArr = reverseArray(arr);
console.log(reversedArr); // 输出: [5, 4, 3, 2, 1]
使用 reduce() 方法
reduce() 方法也可以用来反转数组。
const arr = [1, 2, 3, 4, 5];
const reversedArr = arr.reduce((acc, current) => [current, ...acc], []);
console.log(reversedArr); // 输出: [5, 4, 3, 2, 1]
使用 unshift() 方法

通过遍历数组并使用 unshift() 方法将元素添加到新数组的开头。
function reverseArray(arr) {
const reversed = [];
arr.forEach(item => reversed.unshift(item));
return reversed;
}
const arr = [1, 2, 3, 4, 5];
const reversedArr = reverseArray(arr);
console.log(reversedArr); // 输出: [5, 4, 3, 2, 1]
原地反转数组
如果不希望创建新数组,可以通过交换元素位置实现原地反转。
function reverseArrayInPlace(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;
}
const arr = [1, 2, 3, 4, 5];
reverseArrayInPlace(arr);
console.log(arr); // 输出: [5, 4, 3, 2, 1]
注意事项
Array.prototype.reverse()会修改原数组,如果不想改变原数组,可以先复制一份再反转。- 手动实现反转时,注意数组的索引是从 0 开始的,避免越界。
- 原地反转算法的时间复杂度为 O(n/2),空间复杂度为 O(1)。
以上方法可以根据具体需求选择使用,reverse() 方法是最简单高效的方式,手动实现可以更好地理解反转的原理。






