我之前需要將一個 JavaScript 陣列進行翻轉,以下是我所做的方法。

給定一個陣列 list

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

最簡單和直觀的方法就是調用陣列的 reverse() 方法。

這個方法會修改原始的陣列,所以我可以將 list 声明為常量(const),因為我不需要將 list.reverse() 的結果重新賦值給它:

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

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

你可以將這個方法搭配展開運算符(spread operator)一起使用,先複製原始陣列,然後進行翻轉,這樣原始陣列就不會被改變:

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

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

另一種方法是使用 slice(),不傳入參數:

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

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

但我覺得使用展開運算符比 slice() 更直觀。