我之前需要將一個 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()
更直觀。