在 JavaScript 中,Array.every() 方法用于检查数组中的所有元素都满足指定条件。此方法将 “callback function” 作为参数,该参数迭代数组中的每个元素。如果数组中的所有元素都通过回调函数中的指定条件,则返回 “true” ;否则,它将返回 “false”。
此方法不对空数组元素执行函数。除此之外,此方法不会修改原始数组。
ECMAScript5 (ES5) 功能中的 every() 方法,所有现代浏览器(如 Chrome、Edge、Firefox、Safari 和 Opera)都支持该方法。
语法
以下是 JavaScript Array.every() 方法的语法 -
every(callbackFn, thisArg)
参数
此方法接受两个参数。下面描述相同 -
- callbackFn − 要为数组中的每个元素执行的函数。它需要三个参数 -
- element − 数组中正在处理的当前元素。
- index (可选) − 数组中正在处理的当前元素的索引。
- array (可选)− 调用数组 every() 。
- thisArg(可选)- 要作为其 this 值传递给函数的值。
返回值
此方法返回一个 Boolean 值作为结果。
示例 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
在此示例中,我们使用回调函数检查 fruits 数组中的每个字符串是否都以字母 '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