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

JS Array filter()方法相关推荐

  1. JS Array.map方法内异步方法无法同步执行

    问题: JS Array.map方法内异步方法无法同步执行 场景: 我们在使用map来设置每一项值的时候,涉及到异步操作,就会出现问题. 按照常规,重现出一种情形. 假设我要使用map对每一项值进行操 ...

  2. 如何拿到对象数组中的某一对象的元素(JS的filter方法)

    如何拿到对象数组中的某一对象的元素 在写一个简单的商品管理系统的时候,遇到了一个问题,我接口中需要传递的参数是一个role_id,但是我在页面上显示是角色名称 通过对filter()方法的使用,拿到对 ...

  3. js Array扩展方法

    Object.extend = function (destination, source) {  /// <summary>     /// 扩展对象方法     /// </su ...

  4. js Array 标准方法

    array.concat(item...) concat方法产生一个新数组,它包含一份array的浅自制(shallow copy)并把一个或多个参数item附加在其后.如果参数item是一个数组,那 ...

  5. 数组中的filter方法_数组filter()方法以及JavaScript中的示例

    数组中的filter方法 JavaScript filter()方法 (JavaScript filter() method) filter() method is used to returns a ...

  6. 前端利用js里数组的filter方法进行多条件过滤查询

    需求:用户在输入框输入多个条件时,可以对表格数据进行过滤查询,无需后端接口处理,利用了前端js里数组的filter方法进行过滤. 如下是效果图: 当用户在姓名的输入框里输入"张"后 ...

  7. js中数组filter过滤奇偶数_JS filter()方法:根据指定条件过滤数组元素

    JavaScript filter() 方法可以返回数组中满足指定条件的元素.具体用法如下: array.filter(callbackfn[, thisArg]); 参数说明: array:必需参数 ...

  8. JS Array.slice 截取数组的实现方法

    这篇文章主要介绍了JS Array.slice 截取数组的实现方法,因为我们需要控制一下长度,需要的朋友可以参考下 slice定义和用法 slice() 方法可从已有的数组中返回选定的元素. 语法 a ...

  9. js 数组遍历方法详解(map、filter、find、findIndex、reduce)

    目录 前言 map map是什么 map方法的结构及入参 语法糖 map一般不改变原数组 filter 说明 例子 find 和 findIndex 说明 例子 reduce 说明 例子 尾言 前言 ...

最新文章

  1. Git Bash修改默认路径
  2. linux ubuntu文件系统,Ubuntu Linux文件系统的目录及用途简析
  3. 无线局域网安装与调试(Wireless LAN installation and commissioning)
  4. drawboard pdf拆分文件_电脑在线如何分割PDF页面?免费分割3M以内PDF文件页面的简单方法...
  5. olap mysql_MySQL与OLAP:分析型SQL查询最佳实践探索
  6. SAP自学指南:案例公司的SAP实现(一)
  7. Kotlin入门(22)适配器的简单优化
  8. linux 删除文件内容
  9. 360浏览器不能打开CSDN登陆页面
  10. 在做模具设计过程中应注意哪些问题
  11. 利用DynamipsGUI制作BSCI课程实验拓扑
  12. bilibili手机缓存视频转换为mp4
  13. 安装 卸载project
  14. linux命令kp使用方法,Linux 命令 使用
  15. nmon监控工具使用(打开nmon文件出现  运行时错误13类型不匹配)
  16. Tomasulo算法与记分牌算法的区别
  17. 所谓的不撞南墙不回头
  18. 关于vscode 中Live Server插件无法弹出Chrome浏览器问题
  19. java计算机毕业设计学生宿舍信息管理源码+系统+mysql数据库+lw文档
  20. 蓝牙Bluetooth模块介绍

热门文章

  1. Phonegap win7下环境配置流程
  2. Android TextView 属性设置
  3. 关于showmodaldialog的问题处理
  4. Ubuntu12.04下Linux内核编译
  5. MapReduce PLinq 简单示例
  6. 最新28个很棒的 jQuery 教程
  7. PHP获取客户端、PHP获取服务器相关信息
  8. Oracle字符分隔函数(split)
  9. asp.net中实现文件批量上传
  10. 四道微软面试经典算法题