every方法检测数组每个元素是否都满足条件,全部为真返回true,遇假值立即返回false;空数组恒返回true;不修改原数组,跳过稀疏元素。

every 方法用于检测数组中的**每一个元素是否都满足指定条件**,返回一个布尔值:全部为真才返回 true,只要有一个不满足就立刻返回 false(短路执行)。
基本用法和语法
调用方式:arr.every(callback(element, index, array), thisArg)
-
callback:必需,每次遍历执行的函数,接收三个参数:
element(当前元素)、index(索引)、array(原数组) -
返回值:所有元素都使回调返回真值(truthy),则
every返回true;遇到第一个假值(falsy)立即停止并返回false -
空数组表现:无论条件是什么,空数组调用
every总是返回true(逻辑上的“全称命题在空集上恒真”)
常见使用场景示例
检查是否全为正数:
[2, 5, 8, 10].every(x => x > 0); // true [2, -1, 8].every(x => x > 0); // false(遇到 -1 就停)
检查对象数组中所有项是否都有某个属性且符合要求:
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 35 }
];
users.every(u => u.age >= 25); // true
users.every(u => u.name.length > 3); // false('Bob' 长度为 3)
配合 isNaN 或 typeof 检查类型一致性:
['a', 'b', 'c'].every(item => typeof item === 'string'); // true [1, '2', 3].every(item => typeof item === 'number'); // false
注意易错点
- 回调函数必须有返回值;若忘记写
return或返回undefined,会被当作 falsy,导致结果为false - 不会修改原数组,纯函数式操作
- 不遍历已删除或未初始化的稀疏数组元素(如
[1, , 3]中的空位会被跳过) - 如果数组含
NaN,注意NaN === NaN是false,需用Number.isNaN()判断











