介绍
filter():对数组中的每一项运行给定函数,返回该函数会返回 true 的项组成的数组
用法
常用于把Array的某些元素过滤掉,然后返回剩下的元素。
filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。
例如:返回一个所有数值都大于 2 的数组
var arr = [1,2,3,4,5,4,3,2,1];
var list = arr.filter(function(item, index, array){
return (item > 2);
});
alert(list); //[3,4,5,4,3]
通过调用 filter()方法创建并返回了包含 3、4、5、4、3 的数组,因为传入的函数对它们
每一项都返回 true。这个方法对查询符合某些条件的所有数组项非常有用。
回调函数
filter()接收的回调函数,其实可以有多个参数。通常我们仅使用第一个参数,表示Array的某个元素。回调函数还可以接收另外两个参数,表示元素的位置和数组本身:
var arr = ['A', 'B', 'C'];
2 var r = arr.filter(function (element, index, self) {
3 console.log(element); // 依次打印'A', 'B', 'C'
4 console.log(index); // 依次打印0, 1, 2
5 console.log(self); // self就是变量arr
6 return true;
7 });