如何在JavaScript中检查数组中提供的元素是否已通过指定条件?

两种方法可以检查数组中提供的元素是否通过了测试。它们是Array.filter()方法和_.filter()方法。前者是普通的javascript方法,而后者是来自underscore.js的方法,后者是javascript库。

语法

_.filter( list, conditions);

 此方法接受两个参数。一个是将提供元素的列表,另一个是条件(仅代码)。

示例

在下面的示例中,使用 _.filter()显示了三个的倍数。_.filter()方法在这里采用了两个参数,一个是列表,另一个是条件。

<html>
<body>
<script type="text/javascript" src=
   "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js">
</script>
</head>
<body>
<script>
   var arr = [3,4,5,6,9,77,36,42]
   var threeMul = _.filter(arr,
   function(num){
      return num % 3 == 0;
   });
   document.write(threeMul);
</script>
</body>
</html>

输出结果

3,6,9,36,42


Array.filter()

这是正常的javascript方法。这用于筛选值是否通过了提供的测试。 

示例

在以下示例中,显示大于特定工资的工资,如输出所示。

<html>
<body>
<p id="filter"></p>
<script>
   var salary = [12000, 13000, 15000, 78000, 43000];
   var specSal = salary.filter(myFunction);
   document.getElementById("filter").innerHTML = specSal;
   function myFunction(value, index, array) {
      return value > 20000;
   }
</script>
</body>
</html>

输出结果

78000,43000