问题描述
如何过滤具有多个条件的数组?
var users = [
{ user: "barney",age: 36,active: true },{ user: "fred",age: 39,active: false },age: 40,age: 41,age: 42,age: 43,]
_.filter(users,function (o) {
return o.age !== 40 || o.age !== 41 || o.age !== 42
})
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script>
解决方法
谓词功能有一个小问题
o.age !== 40 || o.age !== 41 || o.age !== 42
通过每个对象,因为年龄只有一个值,所以检查它是否不同于3个不同的值绝对是正确的
以下修补程序可以为您提供帮助
var users = [
{ user: "barney",age: 36,active: true },{ user: "fred",age: 39,active: false },age: 40,age: 41,age: 42,age: 43,]
const res = _.filter(users,function (o) {
return ![40,41,42].includes(o.age)
})
console.log(res)
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script>