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

本文介绍了一种使用JavaScript实现的数据过滤方法,可以根据一个或多个输入条件从数据集中筛选出符合条件的记录。通过具体示例展示了如何应用该方法进行高效的数据筛选。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

场景:有多个输入框,输入一个及以上的条件,实现数据过滤。

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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值