Array.prototype.reverse() 直接修改原数组并返回其引用,实现就地反转;若需保留原数组,应先用展开运算符、slice() 或 concat() 拷贝再反转;该方法不适用于字符串或类数组,且仅浅层翻转,不递归处理嵌套结构。

Array.prototype.reverse() 会直接修改原数组,并返回该数组的引用(不是新数组),顺序完全颠倒。
基本用法:直接翻转原数组
调用 reverse() 不需要参数,它就地(in-place)反转数组元素顺序:
let arr = [1, 2, 3, 4]; arr.reverse(); console.log(arr); // [4, 3, 2, 1]
注意:原数组已被改变,没有创建新数组。
想保留原数组?先拷贝再翻转
如果不想改动原始数组,需手动创建副本。常用方法有:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
-
[...arr].reverse()—— 展开运算符(推荐,简洁易读) -
arr.slice().reverse()——slice()不传参即复制整个数组 -
arr.concat().reverse()——concat()无参时也返回浅拷贝
const original = ['a', 'b', 'c']; const reversed = [...original].reverse(); console.log(original); // ['a', 'b', 'c'](未变) console.log(reversed); // ['c', 'b', 'a']
对类数组或字符串?不能直接用
reverse() 是数组方法,只适用于真正的 Array 实例:
- 字符串不是数组,需先转成数组:
[...str].reverse().join('') - 类数组对象(如
arguments、NodeList)需先转数组:Array.from(nodeList).reverse()或[...nodeList].reverse()
注意:只做浅翻转,不递归处理嵌套项
reverse() 只改变元素位置,不深入每个元素内部。若数组含对象或子数组,它们自身不会被“翻转”:
let arr = [[1, 2], [3, 4], [5, 6]]; arr.reverse(); console.log(arr); // [[5, 6], [3, 4], [1, 2]] —— 子数组没被反转
如需深层翻转,得额外遍历并分别调用 reverse()。

















