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

多条件过滤数组对象

使用方法: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
})
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

接口写好了吗

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

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

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

打赏作者

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

抵扣说明:

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

余额充值