1

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
        }
仅为个人理解,如有错谬,欢迎指正。
如果对您有所帮助,请您点个赞吧!

forceddd
271 声望912 粉丝

一名前端爱好者。