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;
});
posted @   鸭梨的药丸哥  阅读(95)  评论(0编辑  收藏  举报  
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示