js 多条件 多数据筛选

场景:前端多条件过滤

 

 

 数据格式:[

{

color: "",
companyName: "济南宏益环境科技有限公司",
orgid: "370114,3701",
remark: "111",
tag: "人工标记"

},
……

]

方法定义:

export function multiFilter(array, filters) {
    const filterKeys = Object.keys(filters)
    return array.filter((item) => {
      return filterKeys.every(key => {
        if(!filters[key].length) return true
        return !!~item[key].indexOf(filters[key])
      })
    })
  }

 

vue调用:
        getList1() {
            this.currentPage = 1
            this.pageSize = 10
            // console.log(this.searchForm)
   //重新组装数据
            let obj={
                companyName:this.searchForm.companyName,
                tag:this.searchForm.tag || "",
                orgid:this.searchForm.orgid || "",
            }            
            const arr = multiFilter(this.cloneData, obj)  //调用方法  ,别忘了是使用深拷贝的数据,建议接口拿到数据然后深拷贝一下。      
            this.tableData = arr
        },
 
 
 
 
posted @ 2022-08-31 14:51  赵辉Coder  阅读(812)  评论(0编辑  收藏  举报