myfreax

JavaScript Array find() 方法

在本教程中,您将学习如何使用 JavaScript find() 方法来搜索数组中的第一个元素,find() 方法非常适合用于测试

JavaScript Array find() 方法
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() 方法查找返回满足测试函数的第一个元素。

内容导航