Array.prototype.every() 是检查数组所有元素是否满足条件的最直接有效方法,它短路执行、语法简洁、语义明确,空数组默认返回 true。

用 Array.prototype.every() 方法最直接有效。
every() 是专为此设计的内置方法
它遍历数组,对每个元素执行回调函数,只要有一个元素返回 false(或假值),就立即返回 false;全部为真才返回 true。
- 语法简洁:
arr.every(item => condition) - 短路执行:遇到第一个不满足条件的元素就停止,性能好
- 空数组默认返回
true(逻辑上“所有零个元素都满足”成立)
常见使用场景示例
检查数字数组是否全为正数:
const nums = [2, 4, 6, 8]; nums.every(n => n > 0); // true const mixed = [2, -1, 6]; mixed.every(n => n > 0); // false
检查字符串数组是否全非空且长度大于 2:
立即学习“Java免费学习笔记(深入)”;
const words = ['hello', 'world', 'js']; words.every(w => w && w.length > 2); // true
注意回调函数的返回值类型
every() 关注的是回调函数的返回值是否为真值(truthy),不是必须严格返回 true 或 false。
- 返回
1、"ok"、{}等真值 → 当作true - 返回
0、""、null、undefined、NaN→ 当作false - 建议显式返回布尔值,避免隐式转换带来的歧义
替代方案:手动循环 or some() 取反
虽然可用 for 循环或 some() 配合取反实现,但可读性和意图清晰度不如 every():
-
!arr.some(item => !condition)逻辑绕弯,易出错 - 手写循环冗长,且容易忽略边界(如空数组)
-
every()语义明确,是标准、推荐做法


















