跳到主要内容

JavaScript 数组的 find() 方法详解

find() 方法返回数组中第一个满足提供的测试函数的元素的值。

示例

let numbers = [1, 3, 4, 9, 8];

// 检查偶数的函数
function isEven(element) {
return element % 2 == 0;
}

// 获取第一个偶数
let evenNumber = numbers.find(isEven);
console.log(evenNumber);

// 输出:4

find() 语法

find() 方法的语法为:

arr.find(callback(element, index, arr), thisArg);

这里,arr 是一个数组。

find() 参数

find() 方法接受:

  • callback - 在数组的每个元素上执行的函数。它接受:

  • element - 数组的当前元素。

thisArg(可选)- 用作 callback 内的 this 的对象。

find() 返回值

  • 如果有元素满足给定函数,则返回 数组中第一个元素
  • 如果没有元素满足函数,则返回 undefined。

示例 1:使用 find() 方法

function isEven(element) {
return element % 2 == 0;
}

let randomArray = [1, 45, 8, 98, 7];

let firstEven = randomArray.find(isEven);
console.log(firstEven); // 8

// 使用箭头函数
let firstOdd = randomArray.find((element) => element % 2 == 1);
console.log(firstOdd); // 1

输出

8
1

示例 2:find() 用于对象元素

const team = [
{ name: "Bill", age: 10 },
{ name: "Linus", age: 15 },
{ name: "Alan", age: 20 },
{ name: "Steve", age: 34 },
];

function isAdult(member) {
return member.age >= 18;
}

console.log(team.find(isAdult)); // { name: 'Alan', age: 20 }

// 使用箭头函数和解构
let adultMember = team.find(({ age }) => age >= 18);

console.log(adultMember); // { name: 'Alan', age: 20 }

输出

{ name: 'Alan', age: 20 }
{ name: 'Alan', age: 20 }

推荐阅读: JavaScript 数组 findIndex()