数组的every方法原理及实现

1.every的用法

菜鸟教程:数组

every() 方法用于检测数组全部元素是否都符合指定条件(经过函数提供)。
every() 方法使用指定函数检测数组中的全部元素:
若是数组中检测到有一个元素不知足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
若是全部元素都知足条件,则返回 true。
注意: every() 对空数组检测 返回 true。
注意: every() 不会改变原始数组。

every的第一个参数是回调函数,该函数能够接受三个参数,依次为当前元素item,当前元素下标index和调用此方法的数组arr,every的第二个参数是一个对象,能够将其绑定为回调函数的this。函数

2.every的实现

Array.prototype.myEvery = function (cb, thisValue) {
            if (typeof cb !== 'function') {
                throw new Error('第一个参数应当是函数')
            }
            // 空数组返回true
            if (!this.length) {
                return true
            }
            for (let i = 0; i < this.length; i++) {
                //若是任一次回调函数的返回值为假,就返回false,every就此中止执行
                //使用call方法 绑定回调函数中的this
                if (!cb.call(thisValue, this[i], i, this)) {
                    return false;
                }
            }
            //若遍历执行以后,回调函数结果全为真,返回true
            return true
        }
仅为我的理解,若有错谬,欢迎指正。
若是对您有所帮助,请您点个赞吧!
相关文章
相关标签/搜索