
filter() 方法创建一个新数组,其中所有元素都通过了由提供的回调函数实现的测试。
注意: filter()方法不会更改原始数组。
语法:
array.filter(callback, thisArg)
var age = [1, 30, 39, 29, 10, 13];
var val = age.filter(isAdult);
function isAdult(element) {
return element >= 18;
}测试看看‹/›浏览器兼容性
表格中的数字指定了完全支持filter()方法的第一个浏览器版本:
| Method | ![]() | ![]() | ![]() | ![]() | ![]() |
| filter() | 是 | 1.5 | 是 | 是 | 9 |
参数值
| 参数 | 描述 |
|---|---|
| callback | 要为数组中的每个元素运行的函数。 函数参数:
|
| thisArg | (可选)值,在执行回调时使用 |
技术细节
| 返回值: | 一个具有通过测试的元素的新数组。如果没有元素通过测试,则将返回一个空数组 |
|---|---|
| JavaScript版本: | ECMAScript 5 |
更多实例
以下示例使用filter()方法根据搜索条件过滤数组内容:
var fruits = ['apple', 'mango', 'banana', 'orange', 'grapes'];
/**
* 基于搜索条件的数组筛选项(查询)
*/
function filterItems(query) {
return fruits.filter(function(el) {
return el.indexOf(query) > -1;
})
}
function myFunc(val) {
document.getElementById("result").innerHTML = filterItems(val);
}测试看看‹/›




