用法: 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。 语法:arr.find(callback[, thisArg]) 参数: callback:用来测试每个元素的函数,接受三个参数: element:当前遍历到的元素。 index可选:当前遍历到的元素。 array可选:数组本身。 thisArg可选:执行 callback 时,用于 this 的值。 返回值: 数组中第一个满足所提供测试函数的元素的值,否则返回 undefined。

    1. const myTest = [5, 12, 8, 130, 44];
    2. console.log('-----find------');
    3. let result = myTest.find((item,index,arr)=>{
    4. console.log(item,index,arr);
    5. return item>10;
    6. })
    7. console.log(result)
    8. console.log('-----myFind------');
    9. Array.prototype.myFind = function(fun,thisArg){
    10. if(typeof fun !=='function'){
    11. throw new Error(fun + '不是一个函数')
    12. }
    13. if ([null, undefined].includes(this)) {
    14. throw new Error(`this null 或者 undefined`)
    15. }
    16. for (let i = 0; i < this.length; i++) {
    17. const res = fun.call(thisArg,this[i],i,this);
    18. if(res){
    19. return this[i]
    20. }
    21. }
    22. return undefined;
    23. }
    24. let myResult = myTest.myFind((item,index,arr)=>{
    25. console.log(item,index,arr);
    26. return item>10;
    27. })
    28. console.log(myResult)

    image.png