every() 方法用于检测数组中的所有元素是否都符合指定的条件(通过函数提供)。
every() 方法会依次执行数组的每个元素:
- 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
- 如果没有满足条件的元素,则返回false。
语法:
arr.every(callback[, thisArg])
参数:
- callback:用来测试数组的每个元素的函数。
- thisArg:可选参数,执行 callback 时使用的 this 值。
callback 参数:
- currentValue:当前元素的值。
- index:当前元素的索引。
- array:调用 every 方法的数组。
every() 方法使用指定函数检测数组中的所有元素,如果检测中有一个元素不满足条件,则整个表达式返回 false ,否则返回 true。
下面的例子检测数组中的所有元素是否都大于 10:
function isBiggerThan10(element, index, array) {
return element > 10;
}
[2, 5, 8, 1, 4].every(isBiggerThan10); // false
[12, 5, 8, 1, 4].every(isBiggerThan10); // false
[12, 54, 18, 130, 44].every(isBiggerThan10); // true
上面的例子中,第一个数组中的所有元素都不大于 10,所以返回 false;第二个数组中只有一个元素大于 10,所以返回 false;第三个数组中的所有元素都大于 10,所以返回 true。
如果数组为空,则 every 方法返回 true。
var emptyArray = [];
emptyArray.every(isBiggerThan10); // true
every() 方法不会对空数组进行检测。
every() 方法不会改变原始数组。
示例:
检测数组中的元素是否都是字符串:
function isString(value) {
return typeof value === 'string';
}
var arr = ['Apple', 'Banana', 'Orange'];
arr.every(isString); // true
var arr2 = ['Apple', 'Banana', 8];
arr2.every(isString); // false
检测数组中的元素是否都大于 10:
function isBiggerThan10(element, index, array) {
return element > 10;
}
var arr = [12, 5, 8, 130, 44];
arr.every(isBiggerThan10); // false
var arr2 = [12, 54, 18, 130, 44];
arr2.every(isBiggerThan10); // true