JavaScript Array find() (尋找陣列元素)

陣列 (array) 的 find() 方法用來找出陣列中第一個符合條件的元素。如果找到就回傳該元素的值;如果沒有找到,回傳 undefined

語法:

const foundElement = arr.find(callback[, thisArg])
  • 參數 callback 是一個測試函數,會接收到三個參數:
    • currentValue 代表目前處理到的元素的值
    • index 代表目前處理到的元素的索引位置
    • array 代表陣列本身
    • 根據 callback 的執行結果,返回 true 表示找到了;返回 false 則繼續找下一個
  • thisArg 代表 callback 裡面的 this 是指向哪一個物件
  • find() 執行結果會返回第一個符合條件的元素,或 undefined

用法:

const numbers = [5, 12, 8, 130, 44];

const found = numbers.find(function (element) {
  return element > 10;
});

console.log(found); // 12(第一個大於 10 的元素)

尋找物件陣列中的元素:

const users = [
  { name: 'Mike', age: 20 },
  { name: 'John', age: 30 },
  { name: 'Amy', age: 25 },
];

const user = users.find(function (user) {
  return user.name === 'John';
});

console.log(user); // { name: 'John', age: 30 }

使用箭頭函數 (ES6):

const found = numbers.find((element) => element > 10);
find() 是 ES6 新增的方法。如果你只需要知道是否存在,可以改用 includes();如果需要元素的索引位置,可以改用 findIndex()