Published on

Explore the new frontier of JavaScript - findLast, findLastIndex

Authors

今天來介紹 JavaScript 新增的兩個方法:findLast 和 findLastIndex。這些方法不僅增強了陣列操作的靈活性,還讓我們更方便地處理從陣列尾端搜尋的需求。

findLast 方法

findLast 方法可以找到陣列中滿足特定條件的最後一個元素。這與我們熟悉的 find 方法類似,但搜尋方向相反,從陣列的末尾開始。

來看個例子:假設我們有一個數字陣列,想找到最後一個偶數:

const numbers = [1, 3, 5, 7, 8, 10, 12]
const lastEven = numbers.findLast((num) => num % 2 === 0)

console.log(lastEven) // Output: 12

這個方法特別適合那些需要從尾端開始搜索的情境,比如在日誌記錄或用戶活動歷史中找到最近的一個特定事件。

findLastIndex 方法

再來看看 findLastIndex。這個方法是 findIndex 的逆向版,用來找到滿足特定條件的最後一個元素的索引。也就是說,它返回的是最後一個符合條件的元素的索引,而不是元素本身。

例如:假設我們有一個用戶名列表,想找到最後一個名字以「A」開頭的用戶的索引:

const users = ['Alex', 'Bella', 'Aria', 'David', 'Ava']
const lastIndexA = users.findLastIndex((name) => name.startsWith('A'))

console.log(lastIndexA) // Output: 4

這方法在處理某些特定條件元素的最後出現位置時非常有用,比如在時間戳記數據或用戶活動中定位最後發生的事件。

使用情境

findLast 和 findLastIndex 在多種情境下都很實用。例如,處理大型數據集如用戶活動日誌或交易紀錄時,這些方法能幫助快速找到最近發生的符合條件的元素。這不僅提高了程式碼的可讀性,也幫助提升性能。

實際程式碼應用

在實際開發中,findLast 和 findLastIndex 提供了有效的解決方案來處理從陣列尾端開始的搜尋需求。

例如,在電子商務網站的交易記錄中,你可能需要找出用戶最後一次購買的商品。使用 findLast,我們可以輕鬆地找到這筆交易,而不需要遍歷整個記錄。

const transactions = [
  { id: 1, product: 'Shoes', user: 'Alice' },
  { id: 2, product: 'Book', user: 'Bob' },
  // ...更多交易...
  { id: 99, product: 'Phone', user: 'Alice' },
]
const lastPurchaseAlice = transactions.findLast((tran) => tran.user === 'Alice')

console.log(lastPurchaseAlice) // Output: { id: 99, product: 'Phone', user: 'Alice' }

心得後記

findLast 和 findLastIndex 的加入,讓 JavaScript 在處理數據時更加便捷。這些方法讓程式碼更加簡潔,避免不必要的錯誤。

隨著 JavaScript 語法的不斷更新,開發者在處理陣列上有了更多靈活和高效的選擇,可以更專注於解決實際問題,而不必糾結於繁瑣的數據處理。

參考資料

JavaScript Array findLast Method JavaScript Array findLastIndex Method