array.find(function(item, index, array) {
return 條件;
});
| 參數 | 代表 |
|---|---|
| item | 目前正在檢查的元素 |
| index | 目前元素的位置 |
| array | 原本整個陣列 |
1.找第一個大於 18 歲的人
const ages = [15, 18, 22, 30, 40];
const result = ages.find(function(age) {
return age > 18;
});
console.log(result); //22
2.找指定名字
const students = ["Amy", "John", "Mary", "Tom"];
const result = students.find(function(name) {
return name === "Mary";
});
console.log(result); //Mary
3.找物件(Object)
const users = [
{ name: "Amy",score: 90},
{ name: "John",score: 53},
{ name: "Mary",score: 67},
];
const user = users.find(function(item) {
return item.score >= 60;
});
console.log(user.name); // Amy
4.找不到資料
const numbers = [10, 20, 30];
const result = numbers.find(function(item) {
return item > 100;
});
console.log(result); // undefined
| 比較項目 | find() | filter() |
|---|---|---|
| 目的 | 找第一筆符合條件的資料 | 找所有符合條件的資料 |
| 找到後是否繼續搜尋 | ❌ 不會,立即停止 | ✅ 會繼續檢查整個陣列 |
| 回傳值 | 單一元素(或 undefined) | 新陣列(可能為空陣列) |
| 找不到時 | undefined | [] |
| 適合情境 | 查詢唯一資料(如使用者、商品、訂單) | 篩選多筆資料(如符合條件的商品清單) |