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
},