一. 原理
**find()**
方法返回通过测试(函数内判断)的数组的第一个元素的值。
二. 用法
**find()**
方法为数组中的每个元素都调用一次函数执行:
- 当数组中的元素在测试条件时返回
**true**
时,**find()**
返回符合条件的元素,之后的值不会再调用执行函数。 - 如果没有符合条件的元素返回
**undefined**
。
注意:
**find()**
不会对空数组进行检测。**find()**
不会改变原始数组。三. 手写代码
Array.prototype.newFind = function(fn){
let arr = this;
for(let i=0; i<arr.length; i++){
if(fn(arr[i])){
return arr[i];
}
}
return undefined;
}
四. 测试代码
```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 ```