一. 原理

**find()** 方法返回通过测试(函数内判断)的数组的第一个元素的值。

二. 用法

**find()** 方法为数组中的每个元素都调用一次函数执行:

  • 当数组中的元素在测试条件时返回 **true**时, **find()** 返回符合条件的元素,之后的值不会再调用执行函数。
  • 如果没有符合条件的元素返回 **undefined**

注意:

  • **find()** 不会对空数组进行检测。
  • **find()** 不会改变原始数组。

    三. 手写代码

    1. Array.prototype.newFind = function(fn){
    2. let arr = this;
    3. for(let i=0; i<arr.length; i++){
    4. if(fn(arr[i])){
    5. return arr[i];
    6. }
    7. }
    8. return undefined;
    9. }

    四. 测试代码

    ```javascript const arr = [ {id: 0, name: “0”}, {id: 1, name: “1”}, {id: 2, name: “2”},
    {id: 3, name: “3”} ];

console.log(arr.find(item => item.name === ‘3’)); // { id: 3, name: ‘3’ } console.log(arr.newFind(item => item.name === ‘3’)); // { id: 3, name: ‘3’ }

console.log(arr.find(item => item.name === ‘5’)); // undefined console.log(arr.newFind(item => item.name === ‘5’)); // undefined ```