iT邦幫忙

0

[JavaScript學習筆記] - Array方法-find

  • 分享至 

  • xImage
  •  

什麼是 find()?

  • 如果 map() 是「加工資料」、filter() 是「篩選多筆資料」,那麼 find() 就是「尋找第一筆符合條件的資料」
  • 它會從陣列前面開始找,只要找到第一個符合條件的元素,就立刻停止並回傳。
  • 如果全部都找不到,就回傳:undefined

基本語法

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

filter() 與 find() 比較

比較項目 find() filter()
目的 找第一筆符合條件的資料 找所有符合條件的資料
找到後是否繼續搜尋 ❌ 不會,立即停止 ✅ 會繼續檢查整個陣列
回傳值 單一元素(或 undefined) 新陣列(可能為空陣列)
找不到時 undefined []
適合情境 查詢唯一資料(如使用者、商品、訂單) 篩選多筆資料(如符合條件的商品清單)

圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言