一、基本介紹
arr.find()是JavaScript中的一個數組方法,用來查找并返回數組中第一個符合條件的元素。它是ES6新增的方法,常用于搜索item,查找是否存在指定的元素。
二、語法
arr.find(callback(element[, index[, array]])[, thisArg])
callback是一個測試函數,返回值為true或false。除了element以外的兩個參數是可選的。
thisArg用來定義callback函數內部this的值。
數組方法find()語法: let newArr = arr.find((element, index, array) => { // callback function }, thisArg);
三、使用示例
1、查找數字數組中的偶數
let nums = [1, 2, 3, 4, 5]; let evenNum = nums.find((num) => { return num % 2 === 0; }); console.log(evenNum) // 2
在這個例子中,我們傳遞了一個callback函數,它的作用是查找數組中第一個偶數。find方法會從數組中的第一個元素開始執行callback函數,如果該函數返回true,則停止執行并返回該元素。
2、查找對象數組中指定年齡的人
let people = [ { name: 'zhangsan', age: 22 }, { name: 'lisi', age: 25 }, { name: 'wangwu', age: 30 }, { name: 'zhaoliu', age: 22 } ]; let person = people.find((person) => { return person.age === 22; }); console.log(person) // { name: 'zhangsan', age: 22 }
在這個例子中,我們通過傳遞一個callback函數來查找并返回第一個年齡為22的人?;卣{函數有一個參數person,代表每個元素。如果某個人的年齡為22,則返回該元素 person。
3、找到數組中的第一個大寫字母
let arr = ['a', 'B', 'c', 'D', 'e']; let result = arr.find(item => { return item === item.toUpperCase(); }); console.log(result);//'B'
在這個例子中,我們通過使用callback函數在數組中查找第一個大寫字母。回調函數只有一個參數 item,代表每個元素。如果該元素是大寫字母,則返回該元素的值。
四、注意事項
如果沒有找到符合條件的元素,則arr.find()會返回undefined。
與其他數組方法類似,find()也可以使用thisArg參數來指定回調函數中的this指向。
回調函數中,有三個參數element、index和array,其中index和array都是可選的。
ES6的時代已經來臨,只要你了解了這個函數的用途和特性,就能夠使用JavaScript更方便地處理各種問題。