Array.reverse() 反转数组
最后更新:2026-09-09
Array.reverse() 反转数组
reverse 原地反转数组元素顺序并返回同一个数组引用。想保持原数组不变,先复制再反转([...arr].reverse() 或 ES2023 的 toReversed())。
| 分类 | 数组 |
|---|---|
| ES 版本 | ES1(1997) |
📝 语法
数组.reverse();
返回值:被反转的原数组(同一引用)。
是否修改原值:是(原地修改)
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
[ 3, 2, 1 ]
[ 3, 2, 1 ]
[ 1, 2, 3 ]
[ 3, 2, 1 ]
⚠️ 警告 reverse 直接修改原数组——链式调用前如果不想破坏原数据,先 [...arr] 复制。
ℹ️ info ES2023 新增 toReversed():返回反转的新数组且不动原数组,逐步替代 [...arr].reverse() 写法。
🌐 浏览器支持
| 浏览器 | |||||
|---|---|---|---|---|---|
| Array.reverse() | ✓ v1 | ✓ v12 | ✓ v1.5 | ✓ v3 | ✓ v10.5 |
| 所有现代浏览器均支持 | |||||
🏷️ 相关数组方法
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Qreverse 会修改原数组吗?
A会,这是原地操作。保留原顺序请先复制:[...arr].reverse() 或 arr.toReversed()(ES2023)。
Q字符串怎么反转?
A字符串没有 reverse:用 str.split('').reverse().join('')。含 emoji 时用 [...str].reverse().join('')。
Qreverse 和 sort 一样是原地操作吗?
A是。sort/reverse/splice/fill/copyWithin 都是原地修改方法,push/pop/shift/unshift 也一样。