js中filter的用法

664 阅读1分钟

介绍

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 });