JavaScript Array every() 方法

  • JavaScript Array every()方法

    every()方法检查数组中的所有元素是否都通过了测试(作为函数提供)。every()方法为数组中的每个元素执行一次函数:如果找到函数返回false值的数组元素,则every()返回false(并不检查其余值) 如果没有出现false,则every()返回true
    注意every()不会为没有值的数组元素执行函数。
    注意every()不会更改原始数组
    实例:
    检查ages数组中的所有值是否为18或更高:
    var ages = [32, 33, 16, 40];
    
    function checkAdult(age) {
      return age >= 18;
    }
    
    function myFunction() {
      document.getElementById("demo").innerHTML = ages.every(checkAdult);
    }
    尝试一下
  • 浏览器支持

    IE/Edge Chrome FireFox Safari Opera
    方法
    every()
    9.0+
    支持
    1.5+
    支持
    支持
  • 语法

    array.every(function(currentValue, index, arr), thisValue)
  • 参数值

    参数 描述
    function(currentValue, index, arr) 必需的。 要为数组中的每个元素运行的函数。 函数参数:
    • currentValue - 必需的。 当前元素的值
    • index - 可选的。 当前元素的数组索引
    • arr - 可选的。 当前元素所属的数组对象
    thisValue 可选的。 要传递给要用作“this”值的函数的值。 如果此参数为空,则值“undefined”将作为其“this”值传递
  • 技术细节

    项目 描述
    返回值: 布尔值。如果数组中的所有元素都通过测试,则返回true,否则返回false
    JavaScript版本: ECMAScript 5
  • 更多例子

    检查ages数组中的所有值是否为特定数字或以上:
    <p>Minimum age: <input type="number" id="ageToCheck" value="18"></p>
    <button onclick="myFunction()">Try it</button>
    
    <p>All ages above minimum? <span id="demo"></span></p>
    
    <script>
    var ages = [32, 33, 12, 40];
    
    function checkAdult(age) {
      return age >= document.getElementById("ageToCheck").value;
    }
    
    function myFunction() {
      document.getElementById("demo").innerHTML = ages.every(checkAdult);
    }
    </script>
    尝试一下
    检查数组中的所有答案值是否相同:
    var survey = [
      { name: "Steve", answer: "Yes"},
      { name: "Jessica", answer: "Yes"},
      { name: "Peter", answer: "Yes"},
      { name: "Elaine", answer: "No"}
    ];
    
    function isSameAnswer(el, index, arr) {
      if (index === 0){
        return true;
      } else {
        return (el.answer === arr[index - 1].answer);
      }
    }
    
    function myFunction() {
      document.getElementById("demo").innerHTML = survey.every(isSameAnswer);
    }
    尝试一下