【筛选方法汇总】js简单实现多条件过滤数组对象,返回新的数组,根据一个数组内的元素,过滤另一个数组对象【持续更新】

博客介绍了前端多条件过滤数组对象的方法。filterConditions为筛选条件,key需与数组中key一致,若筛选条件为空则返回原数据。还说明了返回原数组判断条件可自行设定,也提及根据数组元素过滤数组对象及单独过滤符合要求数据的情况。

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

多条件过滤数组对象

使用方法:filterConditions 是筛选条件,key要和筛选的数组中的key一致,
如果筛选条件没有传或者传的空,会返回原数据不筛选,如果有值了会筛选。
第二个参数传的是需要过滤的数组对象
这里注意,返回原数组的判断条件可以自行设定,
比如我加了一个queryObj[key] == ‘0’
是因为我下拉框选项中有一个全部的选项,拿到的值是0.
需要返回所有数据,所以我加了一条,
如果有其他特殊需求的选项或者值需要返回原数组的就自行增删
主要对比的地方在这里 p[key] == queryObj[key]
我这里是直接对比是否一致的,如果你需要模糊查询,
比如包含这个值的都筛选出来,可以修改这边

let filterConditions = {
 channel: this.qd,
 month: this.time
}
 let datas= this.filterData(filterConditions, this.tableDataAll)

// 多条件过滤,参数queryObj(过滤条件对象),list(需要过滤的数组)
filterData(queryObj, list) {
  let arr = list
     Object.keys(queryObj).forEach(key => {
     if (queryObj[key] == undefined || queryObj[key] == '' || queryObj[key] == '0')return arr 
	 arr = arr.filter(p => p[key] === null || p[key] == queryObj[key])})
	 return arr
},

根据一个数组内的元素,过滤另一个数组对象。数组对象中的某一个字段在数组中存在就过滤出来

kf是数组,里面是多个名字,过滤数组对象中名字一样的数据返回

let result = this.tableData.filter((item)=>{
        if(this.kf.length==0){
      		return this.tableData
		}else{
        	return this.kf.some(curVal => (curVal === item.name)) 
    	}
})

数组对象单独过滤符合要求的数据返回

let result = this.tableData.filter((item)=>{
   return item.part_id==50
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

接口写好了吗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值