filter是常说的增删改查中的‘查’,当对一个数组进行筛选时,经常会使用indexOf 和es6中的includes()方法。filter是es5中的一种迭代方法,其定义为:对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组 。
例:要返回一个所有数值都大于2的数组
var number = [1,2,3,4,5,4,3,2,1]
分析:indexOf或者incluses()方法去检索数组中是否包含某个元素,在这种情况下不好用。使用filter
var numbers = [1,2,3,4,5,4,3,2,1]; var filterResult = numbers.filter(function(item,index,array){ return (item > 2) }); console.log(filterResult); //[3,4,5,4,3]
filter方法接受3个参数:数组项的值,该项在数组中的位置和数组本身。
与此类似的方法有map , forEach , every , map , some 等,(不一一介绍)
此方法可大大方便处理数组的任务,但这些方法有兼容性问题,兼容的浏览器有IE9+ 、Firefox2+、Safari3+ 、 Opera9.5+、Chrome。谨慎使用!!!