编辑这个页面须要登录或更高权限!

JavaScript 数组 filter() 方法

 JavaScript 数组对象

 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.59

参数值

参数描述
callback
要为数组中的每个元素运行的函数。
函数参数:
  • element(必填)-数组中正在处理的当前元素

  • index(可选)-数组中正在处理的当前元素的索引

  • array(可选)- 调用了数组过滤器

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);
}
测试看看‹/›

 JavaScript 数组对象