array.prototype.toreversed() 是 es2023 新增方法,返回逆序新数组且不改变原数组,语义更清晰、效率更高;兼容性需注意,旧环境可使用 polyfill 补充。

Array.prototype.toReversed() 是 ES2023 新增的数组方法,专门用于返回一个**逆序排列的新数组**,而**不改变原数组**。它比 slice().reverse() 更语义清晰、更高效,且是标准内置方法。
基本用法:直接调用即可
只需在任意数组上调用 .toReversed(),它会返回一个新数组,元素顺序完全颠倒,原数组保持不变:
-
[1, 2, 3].toReversed()→[3, 2, 1] -
['a', 'b', 'c'].toReversed()→['c', 'b', 'a'] -
[].toReversed()→[](空数组返回空数组)
与传统写法对比:更简洁安全
过去常用 arr.slice().reverse() 实现类似效果,但存在两个小问题:一是多一步操作,二是 reverse() 本身会修改副本(虽不影响原数组,但语义不够直观)。toReversed() 一步到位,意图明确:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- ✅ 不修改原数组
- ✅ 返回全新数组(浅拷贝)
- ✅ 方法名直白,易读易记
- ❌ 不兼容旧环境(IE、Node.js
实际使用注意事项
该方法对数组元素不做任何处理,仅反转顺序;所有元素(包括 undefined、null、对象、NaN)都按原样逆序排列:
-
[1, undefined, 'hello', null].toReversed()→[null, 'hello', undefined, 1] - 嵌套数组或对象不会被递归反转,只反转顶层元素位置
- 若需深反转(如反转嵌套数组内部),需额外递归处理,
toReversed()不负责此逻辑
兼容性处理(如需支持老环境)
如果项目需兼容不支持该方法的运行时,可添加轻量级 polyfill:
if (!Array.prototype.toReversed) {
Array.prototype.toReversed = function() {
return this.slice().reverse();
};
}
这样既保留现代语法优势,又保障向后兼容。生产环境建议配合构建工具(如 Babel)或按需加载 polyfill。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










