javascript - lodash通过多个过滤器过滤数据

标签 javascript lodash

我有这些数据,需要使用 lodash 应用所有过滤器。最终输出为空白。

filters = [{'gender':'M'}, {'division':'police'}]

data = [{'name':'tom', 'gender':'M', 'division':'police'},
        {'name':'bob' , 'gender':'M', 'division':'police'},
        {'name':'dave' , 'gender':'F', 'division':'IT'},
        ]

data = _.filter(data, function(item){			
      _.forEach(filters, function(filter){					
            data_found = _.filter([item], filter)
            console.log('data_found - ', data_found)
        })        
      })	

console.log(data)

https://jsfiddle.net/52k6170c/1/

最佳答案

您可以将过滤器数组组合到单个对象并将其用作过滤器

combined = filters.reduce((acc,item) =>  ({...acc, ...item})) 
// combined is = {'gender':'M', 'division':'police'}

data = _.filter(data, combined)

如果您不想使用其余运算符,可以使用 lodash function将对象数组组合成单个对象

关于javascript - lodash通过多个过滤器过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59794194/

相关文章:

javascript - 检查原型(prototype)是否加载

javascript - 为什么不能在 JavaScript "Class"中调用自身?

javascript - 使用 Object.assign 和 lodashs _.merge 函数返回新的未突变状态?

javascript - Lodash 将 curry 与 bind 结合使用会导致 typescript 错误

javascript - 使用 lodash 从数组返回对象属性

javascript - 在 Javascript 中过滤数组并将其引用为对象数组

javascript - 如何在Pre触发器中获取Document.SelfLink?

javascript - 在发送给子组件的回调中找不到父项的 Prop

javascript - 脚本下载完成后加载 javascript 异步和监听器

javascript - 以不可变的方式过滤2层数组对象