filter来实现模糊搜索的功能-很有用!

简介: filter来实现模糊搜索的功能-很有用!

在js的学习过程中,我们逐渐会发现,初识的if(),for()等流程控制语句在某些场合存在一定的局限性,常常会出现多次嵌套,用大量的时间来筛选出符合要求的内容,更简便,更有逻辑的方法就应当在此时被引用,我们结识了filter()

定义:

filter用于对数组进行过滤。

filter() 方法会创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

特性:

原数组不变

不会对空数组进行检测

在制作劳务派遣项目的过程中,面对大量数据的多次筛选,for循环难以完成这样的任务

那么在用了filter方法后我们可以怎样解决这样的问题

// 搜索框事件
function searchs() {
  // console.log(dataList); //所有人员信息
  //筛选过后的人员数据
  list_data = dataList.filter(function(dataList) {
    //判断是否满足搜索条件
    if (
      String(dataList.name).indexOf(String(nn)) > -1 && //姓名包含用户输入的姓名
      String(dataList.account).indexOf(String(kk)) > -1 && //公司包含用户选择的公司
      String(dataList.title).indexOf(String(ii)) > -1 && //项目包含项目名称
      String(dataList.grade_title).indexOf(String(ll)) > -1 && //等级包含用户选择的等级
      String(dataList.grade_title).indexOf(String(bb)) > -1 //证书信息包含用户选择的证书
    ) {
      return dataList;
    }
  })
  // console.log(list_data);
  // 调用渲染函数;
  let page = 0;
  staffRenders(list_data);
}
相关文章
|
数据挖掘 Python
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
【Python】已解决:Python pandas读取Excel表格某些数值字段结果为NaN问题
1155 0
|
6月前
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
10月前
|
传感器 物联网 数据安全/隐私保护
低功耗蓝牙和 Wi-Fi 相比有什么优缺点
低功耗蓝牙(BLE)与Wi-Fi相比,功耗更低、成本更少,适用于短距离、小数据量传输,如智能手环等;但传输速度和距离不如Wi-Fi,适合对实时性和带宽要求不高的场景。
|
9月前
|
XML JSON Java
Spring Boot 开发中常见的错误
本文总结了 Java 开发中常见的几个问题及其改进方法,包括:1. 过度使用 `@Component` 注解;2. `@ResponseBody` 注解的错误用法;3. `@Autowired` 的不当使用;4. `application.properties` 管理不善;5. 异常处理不当。每部分详细解释了错误情况和建议的改进方案,并提供了相应的代码示例。
174 11
|
SQL 前端开发 Java
实现数据的搜索( 筛选 )功能
实现数据的搜索( 筛选 )功能
|
10月前
|
缓存 NoSQL 中间件
redis高并发缓存中间件总结!
本文档详细介绍了高并发缓存中间件Redis的原理、高级操作及其在电商架构中的应用。通过阿里云的角度,分析了Redis与架构的关系,并展示了无Redis和使用Redis缓存的架构图。文档还涵盖了Redis的基本特性、应用场景、安装部署步骤、配置文件详解、启动和关闭方法、systemctl管理脚本的生成以及日志警告处理等内容。适合初学者和有一定经验的技术人员参考学习。
725 7
|
11月前
|
存储 Go 文件存储
M.2移动硬盘打造Win To Go系统:高效分区存储文件全攻略
【10月更文挑战第12天】本文详细介绍了如何使用M.2移动硬盘制作Win To Go系统。首先,需准备合适容量与接口类型的M.2硬盘及硬盘盒,并获取Windows镜像文件和分区工具。接着,通过Rufus软件将镜像写入硬盘。文中还提供了分区策略,包括系统分区(约80-120GB)、软件分区(根据需求设定)和数据分区(剩余空间),并指导如何使用DiskGenius或Windows自带工具进行分区。最后,强调了对各分区文件的有效管理和定期备份的重要性。
761 3
|
12月前
|
前端开发 JavaScript
node接收前端上传的图片,单文件、多文件同name、多文件不同name
本文介绍了在Node.js中使用multer模块接收前端上传的图片,包括单文件上传、多文件上传(同name和不同name)以及任意类型文件上传的方法。
411 0
|
敏捷开发 小程序 持续交付
【规范】Git分支管理,看看我司是咋整的
本文介绍了Git分支管理规范的重要性及其在企业中的应用。通过规范化的分支管理,可加速团队协作、确保代码质量、维护主分支稳定,并支持敏捷开发。文中详细描述了主分支(如master、develop)和辅助分支(如feature、hotfix)的作用,并提供了实际开发流程示例,包括开发前、开发中、提测、预生产和部署上线等阶段的操作方法。旨在帮助团队提高效率和代码质量。
2812 0
【规范】Git分支管理,看看我司是咋整的