JavaScript - 数组 every() 方法
在 JavaScript 中,Array.every() 方法用于检查数组中的所有元素是否满足指定条件。此方法接受一个"回调函数"作为参数,该函数会迭代数组中的每个元素。如果数组中的所有元素都满足回调函数中指定的条件,则返回"true";否则,返回"false"。
此方法不会对空数组元素执行该函数。除此之外,此方法不会修改原始数组。
every() 方法是 ECMAScript5 (ES5) 特性之一,所有现代浏览器(例如 Chrome、Edge、Firefox、Safari 和 Opera)都支持该方法。
语法
以下是 JavaScript Array.every() 方法的语法 -
every(callbackFn, thisArg)
参数
此方法接受两个参数。具体描述如下 -
-
callbackFn - 一个要对数组中每个元素执行的函数。它需要三个参数 -
- element - 数组中当前正在处理的元素。
- index(可选)- 数组中当前正在处理的元素的索引。
- array(可选)- 调用 every() 的数组。
- thisArg(可选)- 要作为其 this 值传递给函数的值。
返回值
此方法返回一个布尔值作为结果。
示例
示例 1
在下面的示例中,我们使用 JavaScript Array.every() 方法检查数组中的所有元素是否都是偶数 -
<html>
<body>
<script>
const numbers = [2, 4, 6, 8, 10];
const result = numbers.every(num => num % 2 === 0);
document.write(result);
</script>
</body>
</html>
输出
由于数组中的所有元素都满足回调函数的条件,因此返回结果"true"。
true
示例 2
在此示例中,我们使用回调函数检查水果数组中的每个字符串是否都以字母"S"开头 -
<html>
<body>
<script>
const fruits = ['Strawberry', 'Apple', 'Banana', 'Cherry'];
const result = fruits.every(fruit => fruit[0] === 'S');
document.write(result);
</script>
</body>
</html>
输出
结果返回"false",因为数组中并非所有元素都以字母"S"开头。
false
示例 3
这里,我们验证数组中所有元素是否都大于 0 −
<html>
<body>
<script>
const numbers = [2, 4, 6, -8, 10];
const result = numbers.every(num => num > 0);
document.write(result);
</script>
</body>
</html>
输出
由于并非所有元素都大于 0,因此返回"false"。
false
示例 4
在此示例中,every() 方法使用回调函数检查数组中的每个元素是否均为"number"类型 -
<html>
<body>
<script>
const array = [1, 'two', 3, 'four'];
const result = array.every(item => typeof item === 'number');
document.write(result);
</script>
</body>
</html>
输出
由于并非所有元素都是"number"类型,因此返回"false"。
false

