JS Array filter()方法
JS Array filter()方法
js的数据对象有一个fileter()方法,运行传入一个方法,并对数组中的每个元素进行过滤。
var arr = [1,2,3,4,5,6];
function checknum(num){
return num >= 5 ;
}
var narr = arr.filter(checknum); //结果:narr = [5,6]
1.语法
filter()的完整语法如下:
array.filter(function(currentValue,index,arr), thisValue)
- function(currentValue,index,arr): 过滤用的函数,每个元素都会执行这个函数(必)
- currentValue: 传入的值(必)
- index : 索引(选)
- arr: 当前调用filter()方法的数组对象(选)
- thisValue : 传递给过滤函数的this的值。
2.案例
2.1过滤小于35岁的数据
var age = [17,21,35,45,54,64];
function checkage(age){
return age >= 35 ;
}
var narr = age.filter(checknum); //结果:narr = [35,45,54,64]
2.2过滤arr中小于30的数,并且过滤不存在于arr2中的数
分析一下下面的案例,当arr调用filter()方法并传入一个过滤函数时,我也传入了一个arr2数组对象,而这个arr2数组对象将会赋值给过滤函数中的this。当执行filter中的过滤函数时,会将arr中每个元素当成参数传递给checknum(num),判断num十分大于30并包含在arr2数组中,返回的Boolean结果将决定了该元素是否被保留。True(保留) False(去掉)。
var arr = [14,20,36,54,67,88,96]
var arr2 = [14,54,88]
function checknum(num){
return num >= 30 && this.indexof(num)!=-1;
}
var narr = arr.filter(checknum,arr2); //结果:narr = [54,88]
2.3过滤掉arr中第三个元素的值
filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。所以在过滤的过程中arr数组并没有发生改变。
var arr = [14,20,36,54,67,8,36,36,96,36]
//可以传入箭头函数
var narr = arr.filter((currentValue,index,arr)=>{
return currentValue ==arr[2];
});
2.4过滤掉arr中第三个元素的重复值
这里通过index获取当前元素在数组中索引,通过索引我们可以进行判断,从而避免删除第三个元素。(我们只是删除后面出现重复值)
var arr = [14,20,36,54,67,8,36,36,96,36]
//可以传入箭头函数
var narr = arr.filter((currentValue,index,arr)=>{
return currentValue ==arr[2] && index != 2;
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)