JavaScript every() 方法
最后修改于 2025 年 4 月 4 日
在本文中,我们将展示如何使用 JavaScript 中的 every
方法测试数组元素。
Array every() 方法
every
方法测试数组中的所有元素是否都通过由提供的函数实现的测试。如果所有元素都通过测试,则返回布尔值 true;否则返回 false。
该方法为每个元素执行一次回调函数,直到找到一个未通过测试的元素。如果找到这样的元素,该方法立即返回 false。否则,对于空数组,它返回 true。
回调函数使用三个参数调用:元素的值、元素的索引和正在遍历的数组对象。该方法不会更改调用它的数组。
every() 基本示例
以下示例演示了 every
方法的基本用法。
const numbers = [12, 34, 56, 78, 90]; const allEven = numbers.every(num => num % 2 === 0); console.log(allEven); // Check if all numbers are even
我们测试数组中的所有元素是否都是偶数。箭头函数检查每个元素是否可以被 2 整除。该方法返回 false,因为并非所有数字都是偶数。
$ node main.js false
使用函数测试数组元素
我们可以使用一个命名函数作为 every
的测试条件。
function isPositive(element) { return element > 0; } const values = [1, 2, 3, 4, 5]; const allPositive = values.every(isPositive); console.log(allPositive);
我们定义一个单独的 isPositive
函数,该函数检查一个数字是否为正数。every
方法将此函数应用于每个元素。由于所有数字都是正数,它返回 true。
$ node main.js true
测试对象属性
every
方法可以测试数组中对象的属性。
const users = [ { name: 'John', age: 25 }, { name: 'Jane', age: 30 }, { name: 'Bob', age: 18 } ]; const allAdults = users.every(user => user.age >= 18); console.log(allAdults);
我们检查数组中的所有用户是否都是成年人(18 岁或以上)。箭头函数访问每个对象的年龄属性。该方法返回 true,因为所有用户都符合条件。
$ node main.js true
使用索引参数
回调函数可以使用索引参数进行更复杂的测试。
const temperatures = [22, 23, 24, 25, 26]; const increasing = temperatures.every((temp, index, arr) => { return index === 0 || temp > arr[index - 1]; }); console.log(increasing);
我们检查温度是否严格递增。回调使用索引将每个元素与前一个元素进行比较。该方法返回 true,因为每个温度都高于前一个温度。
$ node main.js true
测试空数组
every
方法对空数组的任何条件都返回 true。
const emptyArray = []; const result = emptyArray.every(element => element > 10); console.log(result);
我们测试一个空数组,其条件通常会失败。该方法返回 true,因为没有元素会失败测试。这是量化普遍性的一种数学性质。
$ node main.js true
来源
在本文中,我们演示了如何使用 every() 方法在 JavaScript 中测试数组元素。
作者
列出 所有 JS 数组函数。