用法: 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。 语法:arr.find(callback[, thisArg]) 参数: callback:用来测试每个元素的函数,接受三个参数: element:当前遍历到的元素。 index可选:当前遍历到的元素。 array可选:数组本身。 thisArg可选:执行 callback 时,用于 this 的值。 返回值: 数组中第一个满足所提供测试函数的元素的值,否则返回 undefined。
const myTest = [5, 12, 8, 130, 44];
console.log('-----find------');
let result = myTest.find((item,index,arr)=>{
console.log(item,index,arr);
return item>10;
})
console.log(result)
console.log('-----myFind------');
Array.prototype.myFind = function(fun,thisArg){
if(typeof fun !=='function'){
throw new Error(fun + '不是一个函数')
}
if ([null, undefined].includes(this)) {
throw new Error(`this 是null 或者 undefined`)
}
for (let i = 0; i < this.length; i++) {
const res = fun.call(thisArg,this[i],i,this);
if(res){
return this[i]
}
}
return undefined;
}
let myResult = myTest.myFind((item,index,arr)=>{
console.log(item,index,arr);
return item>10;
})
console.log(myResult)