數組的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
        }
僅爲我的理解,若有錯謬,歡迎指正。
若是對您有所幫助,請您點個贊吧!
相關文章
相關標籤/搜索