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