ZetCode

JavaScript every() 方法

最后修改于 2025 年 4 月 4 日

在本文中,我们将展示如何使用 JavaScript 中的 every 方法测试数组元素。

Array every() 方法

every 方法测试数组中的所有元素是否都通过由提供的函数实现的测试。如果所有元素都通过测试,则返回布尔值 true;否则返回 false。

该方法为每个元素执行一次回调函数,直到找到一个未通过测试的元素。如果找到这样的元素,该方法立即返回 false。否则,对于空数组,它返回 true。

回调函数使用三个参数调用:元素的值、元素的索引和正在遍历的数组对象。该方法不会更改调用它的数组。

every() 基本示例

以下示例演示了 every 方法的基本用法。

main.js
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 的测试条件。

main.js
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 方法可以测试数组中对象的属性。

main.js
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

使用索引参数

回调函数可以使用索引参数进行更复杂的测试。

main.js
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。

main.js
const emptyArray = [];
const result = emptyArray.every(element => element > 10);

console.log(result);

我们测试一个空数组,其条件通常会失败。该方法返回 true,因为没有元素会失败测试。这是量化普遍性的一种数学性质。

$ node main.js
true

来源

Array every() - 语言参考

在本文中,我们演示了如何使用 every() 方法在 JavaScript 中测试数组元素。

作者

我的名字是 Jan Bodnar,我是一位热情的程序员,拥有丰富的编程经验。自 2007 年以来,我一直在撰写编程文章。迄今为止,我撰写了 1,400 多篇文章和 8 本电子书。我拥有超过十年的编程教学经验。

列出 所有 JS 数组函数。