原文: How to Reverse an Array in JavaScript – JS .reverse() Function

在这篇文章中,我将向你展示两种在 JavaScript 中反转数组的方法。

数组的 reverse 方法是将数组的最后一项变成第一项,而将第一项变成最后一项。中间的其他项也分别被反转。

在向你展示 reverse 方法的例子之前,让我告诉你如何在不使用这个方法的情况下反转一个数组。

我有这篇文章的视频版本,你也可以看看。

如何使用 for 循环反转一个数组

使用 for 循环(或任何其他类型的循环),我们可以将一个数组从最后一项遍历到第一项,并将这些值推到一个新的数组中,成为反转的版本。方法如下:

const array = [1, 2, 3, 4]

const reversedArray = []

for(let i = array.length - 1; i >= 0; i--) {
  const valueAtIndex = array[i]
  
  reversedArray.push(valueAtIndex)
}

console.log(reversedArray)
// [4, 3, 2, 1]

通过使用 for 循环,我们从最后一个值的索引(array.length - 1)开始循环到第一个值的索引(0),然后我们将这些值相应地推送到 reversedArray

但是有一个更简单的方法来反转一个数组,那就是使用 reverse 方法。

如何使用 Array.reverse 来反转一个数组

你可以使用 reverse 方法来反转一个数组。这是一种更容易读/写的 for 循环方法。这个方法在原地反转数组,这意味着它所使用的数组被修改。

让我们看一个例子:

const array = [1, 2, 3, 4]

array.reverse()

console.log(array)
// [ 4, 3, 2, 1 ]

正如你在这个例子中看到的,应用 reverse 方法,array 被修改了。

如果你不希望 array 被修改,你可以在应用 reverse 方法之前克隆它。reverse 方法也会返回被反转的数组,所以你可以将该数组分配给一个变量。

下面是复制和反转一个数组的方法:

const array = [1, 2, 3, 4]

const reversed = [...array].reverse()

console.log(reversed)
// [ 4, 3, 2, 1 ]

console.log(array)
// [ 1, 2, 3, 4 ]

在这里使用 spread 操作符,我们首先克隆 array,然后对克隆的数组应用 reverse 方法。然后,返回的反向数组被返回到 reverse 变量中。

正如你所看到的,在控制台记录 array,它没有受到影响,因为我们先克隆了它。

谢谢你阅读本文!

所以,如果你需要对一个数组进行反转操作,我希望这篇文章能让你有所收获。