js 前端根据多个条件筛选过滤数据


转载@

https://blog.csdn.net/Sunshine_Jian/article/details/121122148

根据筛选条件过滤数据的方法

let data = [ {
        name: '名侦探柯南',
        price: 13,
        num:108,
        hot:0,
        status:1
    }, {
        name: '大侦探皮卡丘',
        price: 13,
        num:151,
        hot:1,
        status:0
    }, {
        name: '绿皮书',
        price: 13,
        num:72,
        hot:1,
        status:1
    } ]
 
//@param condition 过滤条件
//@param data 需要过滤的数据
let filter=(condition,data)=>{
    return data.filter( item => {
        return Object.keys( condition ).every( key => {
           return String( item[ key ] ).toLowerCase().includes( 
                   String( condition[ key ] ).trim().toLowerCase() )
            } )
     } )
}
 
//无条件
var condition={name:'',hot:''};
var aa = filter(condition,data);
console.log(aa);// [{"name":"名侦探柯南","price":13,"num":108,"hot":0,"status":1},{"name":"大侦探皮卡丘","price":13,"num":151,"hot":1,"status":0},{"name":"绿皮书","price":13,"num":72,"hot":1,"status":1}]
 
//单条件
var condition={name:'侦探'};
var bb = filter(condition,data);
console.log(bb);// [{"name":"名侦探柯南","price":13,"num":108,"hot":0,"status":1},{"name":"大侦探皮卡丘","price":13,"num":151,"hot":1,"status":0}]
 
//多条件
var condition={name:'侦探',hot:'1'};
var cc = filter(condition,data);
console.log(cc);//[{"name":"大侦探皮卡丘","price":13,"num":151,"hot":1,"status":0}]
 // An highlighted block
var foo = 'bar';
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐