find和findIndex原理

重写find,findIndex代码和find是一样的,只不过返回的是index

跟forEach差不多

;['abc', 'd', 'efg'].forEach(function  (item, index) {
            console.log(item)
        })
var users = [
    {id:1, name: '张三'},
    {id:2, name: '张三'},
    {id:3, name: '张三'},
    {id:4, name: '张三'}
]

// 函数作为参数
// 传条件函数
Array.prototype.myFind = function (conditionFunc) {
    // 相当于这里有一句这个代码:
    //conditionFunc = function (item, index) { return item.id===4}
    
    for (var i = 0; i < this.length; i++) {

        // 每循环一次要执行一次条件函数, 如果有一次执行返回的是ture就执行下面的代码
        if (conditionFunc(this[i], i)) {
            // 如果为true,就返回this[i],遍历完都没有就是undefined
            return this[i]
        }
    }
}
var result = users.myFind(function (item, index) {
// 返回一个条件
    return item.id ===4
})

console.log(result)

重写forEach

var users = [
    {id:1, name: '张三'},
    {id:2, name: '张三'},
    {id:3, name: '张三'},
    {id:4, name: '张三'}
]
Array.prototype.myEach = function(myFunc) {
    for (var i = 0; i < this.length; i++) {
        myFunc(this[i], i)
    }
}
users.myEach(function (item, index) {
    console.log(item)
})

你可能感兴趣的:(find和findIndex原理)