JavaScript 数组 filter()
示例 1
返回 ages[] 中所有大于等于 18 的值
const ages = [32, 33, 16, 40];
const result = ages.filter(checkAdult);
function checkAdult(age) {
return age >= 18;
}
自己试试 »
描述
The filter()
方法创建一个新的数组,其中包含通过函数提供的测试的元素。
The filter()
方法不会对空元素执行函数。
The 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) 特性。
ES5 (JavaScript 2009) 自 2013 年 7 月起在所有现代浏览器中得到完全支持
Chrome 23 |
IE/Edge 11 |
Firefox 21 |
Safari 6 |
Opera 15 |
2012 年 9 月 | 2012 年 9 月 | 2013 年 4 月 | 2012 年 7 月 | 2013 年 7 月 |