array.prototype.every()判断数组每个元素是否都满足条件,全满足返回true,任一不满足立即返回false,空数组默认返回true。

Array.prototype.every() 用来判断数组中**每一个元素**是否都满足给定的条件。只要有一个元素不满足,就立刻返回 false;全部满足才返回 true。
基本用法和返回逻辑
它接收一个回调函数作为参数,该函数会对每个元素执行一次,返回布尔值:
- 回调函数返回
true→ 当前元素“通过”检查 - 回调函数返回
false(或任何假值)→ 当前元素“失败”,every()立即停止遍历并返回false - 所有元素都通过 → 最终返回
true - 空数组调用
every()→ 默认返回true(逻辑上“没有反例”)
常见使用场景示例
✅ 检查是否全为正数:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
[1, -2, 3].every(x => x > 0) // false
✅ 检查是否全为字符串:
['a', 'b', 'c'].every(x => typeof x === 'string') // true['a', 2, 'c'].every(x => typeof x === 'string') // false
✅ 检查对象数组是否都包含某个属性且值合法:
[{age: 25}, {age: 30}, {age: 18}].every(p => p.age >= 18) // true[{age: 25}, {age: 16}].every(p => p.age >= 18) // false
注意细节
- 回调函数签名:`(item, index, array) => boolean`,可选传入索引和原数组
- 不修改原数组,纯函数式操作
- 遇到
undefined、null或未定义属性时,要加防御性判断,避免报错 - 如果想“至少一个满足”,用
some();想“取反逻辑”,可用!arr.every(...)
实用小技巧
- 配合解构简化对象判断:
arr.every(({ score }) => score != null && score >= 60) - 结合
Number.isInteger判断是否全为整数:[2, 4, 6].every(Number.isInteger) - 空数组慎用逻辑含义:若业务上“空=无效”,需额外判断
arr.length === 0
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










