首页 > 编程笔记 > JavaScript笔记

JS every()方法:检测数组元素是否全部符合指定条件

JavaScript every() 方法用来判断数组的所有元素是否都满足指定的条件。

与 every() 方法类似的还有 some() 方法,它们的区别是:只有当数组中的所有元素都满足条件时,every() 才返回 true;只要数组中有一个元素满足条件,some() 就返回 true。请转到《JS some()》了解详情。

every() 具体用法如下:

array.every(callbackfn[, thisArg]);

参数说明:
如果 callbackfn 函数为所有数组元素返回 true,则返回值为 true;否则返回值为 false。如果数组没有元素,则 every() 方法将返回 true。

every() 方法会按升序顺序对每个数组元素调用一次 callbackfn 函数,直到 callbackfn 函数返回 false。如果找到导致 callbackfn 返回 false 的元素,则 every() 方法会立即返回 false;否则,every() 方法返回 true。every() 方法不为数组中缺少的元素调用该回调函数。

除了数组对象之外,every() 方法可由具有 length 属性具有自己按数字编制索引的属性名的任何对象使用,如关联数组对象、Arguments 等。

回调函数语法如下:

function callbackfn(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("部分不在范围内。");
}

相关文章