【手写查询】根据查询对象 ,对已有的对象数组进行查询(模糊查询,时间查询)

根据查询对象,对已有的对象数组进行查询,代码如下

  function filterFunc(val: any, target: string, filterArr: []) {
    if (val == undefined || val == "") {
      return filterArr;
    }
    return filterArr.filter((p) => {
      if (Array.isArray(val?.split(',')) && val?.split(',').length > 1) {
        // 处理时间区间
        let arr = val?.split(',')
        return p[target] >= arr[0] && p[target] <= arr[1];
      } else {
        // 其他类型的值,忽略大小写进行模糊匹配
        return p[target].toLowerCase().indexOf(val.toLowerCase()) > -1;
      }
    });
  }

  function handleSearch(valueList: {}, dataSourceDtl: any[]) {
    // 备份了一下数据
    let arr = dataSourceDtl;
    // 通过遍历key值来循环处理
    Object.keys(valueList).forEach((e) => {
      // 调用自己定义好的筛选方法
      arr = filterFunc(valueList[e], e, arr);
    });
    // 为表格赋值
    return arr;
  }

使用方法如下

//准备好查询对象
let searchObj = {
  "name": 'ninomiya',
  "createTime": '2023-05-12 00:00:00,2023-06-06 23:59:59'
}

//准备好需要查询的对象数组
let arr = [
	{
	 "name": "ninomi",
     "createTime": "2023-05-15 13:35:06",
    }
]

//调用写好的方法
handleSearch(searchObj, arr)
最后得到的结果就是查询到的数据了
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呐呐呐呐。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值