every方法检测数组所有元素是否都满足条件,返回布尔值;全部为真才返回true,任一为假即短路返回false;空数组恒返回true,与some的“至少一个满足”相反。

every 方法用于检测数组中**所有元素是否都满足指定条件**,返回布尔值:全部为真才返回 true,只要有一个为假就立即返回 false(短路执行)。
every 的基本用法
语法:arr.every(callback(element, index, array), thisArg)
- callback 是必需的判断函数,接收三个参数:当前元素、索引、原数组
- 返回
true或false,every 只关心返回值的真假性 -
thisArg 可选,用于绑定回调函数中的
this
验证数字数组是否全为正数
常见场景:检查用户输入的数值是否都合法
const numbers = [2, 4, 6, 8]; const allPositive = numbers.every(n => n > 0); // true const mixed = [1, -3, 5]; const allPositive2 = mixed.every(n => n > 0); // false(遇到 -3 就停止)
检查对象数组中某个字段是否全部符合要求
比如验证表单数据中每个字段是否都有值
立即学习“Java免费学习笔记(深入)”;
const users = [
{ name: 'Alice', age: 25 },
{ name: 'Bob', age: 30 },
{ name: 'Charlie', age: 28 }
];
const allHaveName = users.every(user => user.name && typeof user.name === 'string'); // true
const allAdults = users.every(user => user.age >= 18); // true
注意空数组和边界情况
空数组调用 every 总是返回 true——因为“没有一个元素不满足条件”在逻辑上成立( vacuous truth)
-
[].every(() => false)→true -
[1, 2, 3].every(x => x > 5)→false - 回调中若抛出异常,every 会立即中断并抛出该错误
与 some 的区别要清楚
every 是“全都要满足”,some 是“至少一个满足”。别混淆:
-
[2, 4, 6].every(x => x % 2 === 0)→true -
[2, 4, 6].some(x => x % 2 !== 0)→false


















