JavaScript Array find() 方法
在本教程中,您将学习如何使用 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() 方法查找返回满足测试函数的第一个元素。