JavaScript Array filter() 方法
示例 1
返回 ages[] 数组中所有大于等于 18 岁的值
const ages = [32, 33, 16, 40];
const result = ages.filter(checkAdult);
function checkAdult(age) {
return age >= 18;
}
自己动手试一试 »
描述
filter() 方法创建一个新数组,新数组中的元素是通过指定函数检测的所有元素。
filter() 方法不会对空元素执行函数。
filter() 方法不会改变原数组。
数组迭代方法
语法
array.filter(function(currentValue, index, arr), thisValue)
参数
| 参数 | 描述 |
| function() | 必需。 为每个数组元素运行的函数。 |
| currentValue | 必需。 当前元素的值。 |
| index | 可选。 当前元素的索引。 |
| arr | 可选。 当前元素所属的数组。 |
| thisValue | 可选。默认值为 undefined作为其 this 值传递给函数的值。 |
返回值
| 类型 | 描述 |
| 数组 | 通过测试的元素组成的新数组。 如果没有元素通过测试,则返回一个空数组。 |
示例 2
返回 ages[] 中所有大于特定数字的值
<p><input type="number" id="ageToCheck" value="30"></p>
<button onclick="myFunction()">试一试</button>
<p id="demo"></p>
<script>
const ages = [32, 33, 12, 40];
function checkAge(age) {
return age > document.getElementById("ageToCheck").value;
}
function myFunction() {
document.getElementById("demo").innerHTML = ages.filter(checkAge);
}
</script>
自己动手试一试 »
浏览器支持
filter() 是 ECMAScript5 (ES5) 的特性。
自 2013 年 7 月以来,所有现代浏览器都完全支持 ES5 (JavaScript 2009)
| Chrome 23 |
IE/Edge 11 |
Firefox 21 |
Safari 6 |
Opera 15 |
| 2012 年 9 月 | 2012 年 9 月 | 2013 年 4 月 | 2012 年 7 月 | 2013 年 7 月 |