JS实现条件查询筛选与条件设值算法

结果展示

为了不浪费大家时间,避免看了发现不是自己想要的东西。我先将结果展示出来。
在这里插入图片描述
上图:原始数据


在这里插入图片描述
点击查询后条件筛选展示


在这里插入图片描述
点击查询后条件设值展示


在这里插入图片描述
两个方法结合使用。
注:1.以上是JS的条件操作,仅限数据已经在前台时使用。2.条件筛选暂时不能同一字段两个条件

一,条件筛选实现原理

简述:第一步,转换参数格式。第二步,参数对比。

第一步:将对象的格式转换为{key:[],key:[],key:[]}。将同样key的的value归到同一个数组中。方便循环对比。

/**
 * 条件查询
 * @author zhou
 * @param tableArr表格参数[{},{},{}],where查询条件格式。威胁名称=K and 采取操作=1232321
 * @returns [{},{},{}]
 */
function queryCriteria(tableArr, where) {
   
    //第一步开始:将tableArr转换为{字段:[],字段:[],字段:[]}。然后进行解读判断
    var listMap = {
   }
    for (var i = 0; i < tableArr.length; i++) {
   
        for (var k in tableArr[i]) {
   
            if (listMap[k]) {
   
                listMap[k].push(tableArr[i][k]);
            } else {
   
                var arr = [];
                arr.push(tableArr[i][k]);
                listMap[k] = arr;
            }
        }
    }
    //第二步开始
    var criteriaArr = where.split(" and ");
    //需要删除的对象的下标
    var delectArr = {
   };
    for (var i3 = 0; i3 < criteriaArr.length; i3++) {
   
        for (var k in listMap) {
   
            //判断字段是否存在
            if (criteriaArr[i3].indexOf(k) != -1) {
   
                for (var i = 0; i < listMap[k].length; i++) {
   
                	
                		var newCriteriaArr = criteriaArr[i3].replace(k, listMap[k][i]);
                		//转换为可判断的表达式,返回判断结果
                		var booleanIf = judge(newCriteriaArr);
	                    if (!booleanIf) {
   
	                    	
	                        //记录不满足条件的下标
	                        delectArr["index" 
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值