如何反转一个JavaScript数组?

192 阅读1分钟

我有必要对一个JavaScript数组进行反转,下面是我的做法。

给定一个数组list

const list = [1, 2, 3, 4, 5]

最简单、最直观的方法是调用数组的reverse() 方法。

这个方法改变了原来的数组,所以我可以把list 声明为一个常量,因为我不需要把调用list.reverse() 的结果重新赋值给它。

const list = [1, 2, 3, 4, 5]
list.reverse()

//list is [ 5, 4, 3, 2, 1 ]

你可以把这个方法和spread操作符配对,首先复制原始数组,然后反转,这样原始数组就不会被触动。

const list = [1, 2, 3, 4, 5]
const reversedList = [...list].reverse()

//list is [ 1, 2, 3, 4, 5 ]
//reversedList is [ 5, 4, 3, 2, 1 ]

另一种方法是使用slice() ,不传递参数。

const list = [1, 2, 3, 4, 5]
const reversedList = list.slice().reverse()

//list is [ 1, 2, 3, 4, 5 ]
//reversedList is [ 5, 4, 3, 2, 1 ]

但我发现传播操作符比slice() 更加直观。