JavaScript中翻转数组最直接的方法是使用reverse()方法,它原地修改数组并返回该数组引用;如需不修改原数组,可用[...arr].reverse()创建浅拷贝后翻转。

JavaScript 中翻转数组元素顺序最直接的方法是使用内置的 reverse() 方法,它会原地修改数组,返回翻转后的新数组引用。
用 reverse() 原地翻转(最常用)
这是标准、高效且简洁的方式,适用于大多数场景:
- 直接调用
arr.reverse(),无需传参 - 会改变原数组,不是创建新数组
- 返回值是翻转后的原数组(可链式调用)
示例:
let arr = [1, 2, 3, 4];arr.reverse(); // [4, 3, 2, 1]
console.log(arr); // [4, 3, 2, 1](原数组已变)
不修改原数组:用扩展运算符 + reverse()
如果需要保留原数组不变,可以先复制再翻转:
立即学习“Java免费学习笔记(深入)”;
-
[...arr].reverse()创建浅拷贝并翻转 -
Array.from(arr).reverse()效果相同,兼容性略好 - 注意:仅对一层嵌套有效(浅拷贝)
示例:
let arr = [1, 2, 3];let reversed = [...arr].reverse(); // [3, 2, 1]
console.log(arr); // [1, 2, 3](未变)
console.log(reversed); // [3, 2, 1]
手动实现(理解原理,一般不推荐)
用双指针从两端交换,适合学习或特殊约束(如不能用内置方法):
- 定义左右索引,循环至左
- 每次交换
arr[left]和arr[right] - 同样会修改原数组
示例:
function reverseArray(arr) {let left = 0;
let right = arr.length - 1;
while (left [arr[left], arr[right]] = [arr[right], arr[left]];
left++;
right--;
}
return arr;
}
reverseArray([1,2,3,4]); // [4,3,2,1]


















