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
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。