详解JavaScript中的every()方法

作者:木棉

时间:2026-10-29

浏览:466

本文详细介绍JavaScript数组的every()方法,该方法用于测试数组中所有元素是否都通过指定函数的测试。文章涵盖语法结构、参数说明、返回值定义,并重点提供了针对旧版浏览器的兼容性Polyfill代码实现及完整示例,帮助开发者理解其工作原理与应用场景。

文章目录

every()方法概述与语法

JavaScript数组提供了一个every()方法,用于检测数组中的所有元素是否都通过了由提供的函数实现的测试。


array.every(callback[, thisObject]);

该方法的语法结构如下所示,具体参数说明如下:

  • callback:用于测试数组中每个元素的回调函数。
  • thisObject:可选参数,指定执行回调函数时的this值。

返回值:如果数组中的所有元素都满足提供的测试函数,则返回true;否则返回false。

关于兼容性:该方法属于ECMA-262标准扩展,因此在某些非标准实现或旧版浏览器中可能不可用。为确保兼容性,建议在代码顶部添加以下Polyfill脚本以支持该功能:

这种方法是一个JavaScript扩展到ECMA-262标准;因此它可能不存在在标准的其他实现。为了使它工作,你需要添加下面的脚本的代码在顶部:

兼容性Polyfill实现


if (!Array.prototype.every)
{
 Array.prototype.every = function(fun /*, thisp*/)
 {
  var len = this.length;
  if (typeof fun != "function")
   throw new TypeError();

  var thisp = arguments[1];
  for (var i = 0; i < len; i++)
  {
   if (i in this &&
     !fun.call(thisp, this[i], i, this))
    return false;
  }

  return true;
 };
}

运行上述代码将产生如下输出结果:

代码示例与运行结果


<html>
<head>
<title>JavaScript Array every Method</title>
</head>
<body>
<script type="text/javascript">
if (!Array.prototype.every)
{
 Array.prototype.every = function(fun /*, thisp*/)
 {
  var len = this.length;
  if (typeof fun != "function")
   throw new TypeError();

  var thisp = arguments[1];
  for (var i = 0; i < len; i++)
  {
   if (i in this &&
     !fun.call(thisp, this[i], i, this))
    return false;
  }

  return true;
 };
}
function isBigEnough(element, index, array) {
 return (element >= 10);
}

var passed = [12, 5, 8, 130, 44].every(isBigEnough);
document.write("First Test Value : " + passed ); 
 
passed = [12, 54, 18, 130, 44].every(isBigEnough);
document.write("Second Test Value : " + passed ); 
</script>
</body>
</html>

最终输出的值为:First Test Value : false,Second Test Value : true。


First Test Value : falseSecond Test Value : true

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章