说明:
①纯前端多条件查询,不涉及后端请求
②可多条件精确匹配和单个条件模糊匹配(或则多个条件模糊匹配)
③不懂看看注释
filterData(condition,data){
//condition 传入的是查询条件,是一个对象
//const condition = {
// 字段: 值
// }
//data 是本次需要筛选的数据源。
let filter = (condition, data) => {
return data.filter( item => {
return Object.keys( condition ).every( key => {
if(condition[ key ] == '') return true
//这里是为了进行某个(或多个)条件的模糊查询做出的业务判断。key是对应的值。
// let diff = key == 'gdsNm1' || 'gdsNm2' //多个条件模糊查询
let diff = key == 'gdsNm' //单个条件模糊查询
? String( item[ key ] ).toLowerCase().indexOf( String( condition[ key ] ).trim().toLowerCase() ) !== -1
: String( item[ key ] ).toLowerCase() == String( condition[ key ] ).trim().toLowerCase()
return diff
})
})
}
return filter(condition,data)
}
转自:前端多条件查询数据处理
网友评论