javascript中every()和some()方法用法解析
every()和some()都是JS数组中的迭代方法
every()方法 | 检测数组所有元素是否满足指定条件,若都满足条件,则返回true,若有一个不满足,则返回false,并且不会再往下执行 |
不会对空数组检测 | |
不会改变原始数组 | |
some()方法 | 检测数组元素是否满足指定条件,若有一个满足条件,则返回true,并且不会再往下执行,若都不满足条件,则返回false |
不会对空数组检测 | |
不会改变原始数组 |
every()具体用法如下:
array.every(callbackfn[, thisArg]);
参数说明:
array:必需参数,一个数组对象。
callbackfn:必需参数,一个接收量最多三个参数的函数。every() 方法会为 array 中的每个元素调用 callbackfn函数,直到 callbackfn 返回 false,或直到到达数组的结尾。
thisArg:可选参数,可在 callbackfn 函数中为其引用 this 关键字的对象。如果省略 thisArg,则 undefined 将用作 this 值。
回调函数语法如下:
function callbackfn(value, index, array);
用户可以使用三个参数来声明回调函数。回调函数的参数说明如下。
value:数组元素的值。
index:数组元素的数字索引
array:包含该元素的数组对象。
示例1
下面示例检测数组中元素是否都为偶数,并进行提示。
function f (value, index, ar) {
if (value % 2 == 0) {
return true;
}else {
return false;
}
}
var a = [2,4,5,6,8];
if (a.every(f)) {
console.log("都是偶数");
}else{
console.log("不全为偶数");
}
示例2
下面示例检测数组中元素的值是否在指定范围内。范围值通过一个对象来设置。通过本示例演示 thisArg 参数的用法。
var f = function (value) {
if (typrof value !== 'number') {
return false;
}else {
return value >=this.min && value <= this.max;
}
var a = [10,15,19];
var obj = {min : 10, max : 20};
if (a.every(f, obj)) {
console.log("都在指定范围内。");
} else {
console.log("部分不在范围内。");
}
吾日三省吾身,脚踏实地~