码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【前台筛选】根据查询条件,实现纯前台的数据筛选


    //olist 待筛选的表格列表数据,query 筛选条件map
    filterQuery(olist,query){
    	let list=this.deepClone(olist);//深度复制数据,隔离原数据
    	let returnList=[];
    	if(list){
    		//获取所有的查询条件
    		let filter=this.deepClone(query);
    		//获取所有的查询条件的key的list
    		const fkeys=Object.keys(filter);
    		//去除查询条件前后的空格
    		fkeys.forEach(item=>{filter[item]=filter[item].trim()});
    		//获取所有符合查询条件的列表集合
    		returnList=list.filter(item=>fkeys.every(key=>item[key].includes(filter[key])));
    	}else{
    	 console.log('无数据');
    	}
    	return returnList;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    举例:

    olist=
    [{id:01,name:'张三',age:'30'},
    {id:02,name:'李四',age:'20'},
    {id:03,name:'王五',age:'10'},]
    
    query={
    id:0,
    name:'张',
    age:'0'
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    筛选结果:

    returnList=
    [{id:01,name:'张三',age:'30'},
    
    • 1
    • 2

    简单解释:
    fkeys获取的是查询条件的所有的key的list集合 [‘id’,‘name’,‘age’]
    list.filter即过滤,条件是
    fkeys.every list中每条数据 都要进行fkeys所有的key的数据判断是否符合,符合的添加到 returnList中
    includes 判断 当前字符串,是否包含查询条件的字符串
    fkeys.every(key=>item[key].includes(filter[key]))
    这条翻译一下等价于
    item.id.includes(filter.id)&&item.name.includes(filter.name)&&item.age.includes(filter.age)
    因为感觉这个写法可以通用,与具体的数据和查询条件无关,所以记录一下

  • 相关阅读:
    matplotlib与django如何集成? matplotlib生成的图可以嵌入到网页吗?
    Java开发规范记录
    QT判断平台和生成版本设置输入目录
    python 碰到问题
    《网络安全笔记》第十五章:交换机的基本配置
    遗传算法(GA)学习 || 原理、本质、代码、例题
    【排序算法】图解直接插入排序(图解堪比Debug显示每次循环结果)
    Go 里面的 ^ 和 &^
    设计高并发系统的关键策略
    MindSpore:强化学习基础-蒙特卡洛(Monte Carlo)
  • 原文地址:https://blog.csdn.net/huqingxiang11/article/details/132858855
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号