在本教程中,您将学习如何使用 JavaScript find()
方法来搜索数组中的第一个元素,find()
方法非常适合用于测试。
Array find() 方法简介
在 ES5 ,要查找数组的元素,可以使用 indexOf()
或者 lastIndexOf()
方法。但是,这些方法非常有限,因为它们仅返回第一个匹配元素的索引。
ES6 引入一种新的方法,称为 find()
并添加到 Array.prototype
数组的原型对象上。
find()
方法返回数组中通过测试函数的第一个元素。find()
方法的语法如下所示:
find(callback(element[, index[, array]])[, thisArg])
find()
方法接受两个参数:一个回调函数和一个用于 callback
函数内部的可选 this
值。
callback
这是一个执行数组每个元素的 callback
函数。它需要三个参数:
element
是当前元素。index
当前元素的索引。array
被调用的数组。
thisArg
thisArg
是在 callback
中使用的 this
对象。
返回值
find()
对数组中的每个元素执行 callback
函数,直到 callback
函数返回真值。如果回调返回真值,find()
方法立即返回该元素并停止搜索。否则,它返回undefined
。
如果你想找到指定元素的索引,可以使用 findIndex()
方法。
JavaScript find() 示例
以下示例使用 find()
方法搜索数字数组中的第一个偶数:
let numbers = [1, 2, 3, 4, 5];
console.log(numbers.find(e => e % 2 == 0));
输出:
2
假设我们有一个客户对象列表,其name
属性的值是credit
,如下:
let customers = [{
name: 'ABC Inc',
credit: 100
}, {
name: 'ACME Corp',
credit: 200
}, {
name: 'IoT AG',
credit: 300
}];
以下代码使用该find()
方法查找第一个信用大于 100 的客户。
console.log(customers.find(c => c.credit > 100));
输出:
{ name: 'ACME Corp', credit: 200 }
结论
使用数组的 find()
方法查找返回满足测试函数的第一个元素。