百科狗-知识改变命运!
--

arr.find用法介绍

百变鹏仔1年前 (2023-11-21)阅读数 24#技术干货
文章标签函数

一、基本介绍

arr.find()是JavaScript中的一个数组方法,用来查找并返回数组中第一个符合条件的元素。它是ES6新增的方法,常用于搜索item,查找是否存在指定的元素。

二、语法

arr.find(callback(element[, index[, array]])[, thisArg])

arr.find用法介绍

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更方便地处理各种问题。

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)