📅  最后修改于: 2023-12-03 15:30:03.417000             🧑  作者: Mango
whereNotIn()
方法是 Collect.js 中的一个通用过滤器,它可以筛选出不符合给定值数组的所有元素。
whereNotIn(key, values[, strict = false])
参数
key
:要比较的属性名称。values
:需要排除的值,可以是数组或其他可迭代对象。strict
:是否开启类型严格模式,默认为 false
,表示非严格模式。返回值
筛选后的新数组。
const users = [
{ id: 1, name: 'Alice', gender: 'female' },
{ id: 2, name: 'Bob', gender: 'male' },
{ id: 3, name: 'Charlie', gender: 'male' },
{ id: 4, name: 'Diana', gender: 'female' },
{ id: 5, name: 'Eva', gender: 'female' }
]
const newUsers = _(users).whereNotIn('name', ['Charlie', 'Eva']).value()
console.log(newUsers)
输出:
[
{ id: 1, name: 'Alice', gender: 'female' },
{ id: 2, name: 'Bob', gender: 'male' },
{ id: 4, name: 'Diana', gender: 'female' }
]
上述示例中,whereNotIn()
方法会根据 'name'
属性筛选出所有名字不为 'Charlie'
和 'Eva'
的用户对象,将它们以新数组的形式返回。
需要注意的是,在默认的非严格模式下,whereNotIn()
方法是通过非严格相等运算符 ==
进行比较的。比如上例中,如果将数组改为 ['Charlie', 'Eva', 3]
,那么 { id: 3, name: 'Charlie', gender: 'male' }
也会被排除。如果想要开启类型严格模式,需要将第三个参数设为 true
。
const newUsers = _(users).whereNotIn('name', ['Charlie', 'Eva'], true).value()
console.log(newUsers)
输出:
[
{ id: 1, name: 'Alice', gender: 'female' },
{ id: 2, name: 'Bob', gender: 'male' },
{ id: 3, name: 'Charlie', gender: 'male' },
{ id: 4, name: 'Diana', gender: 'female' }
]
总之,whereNotIn()
方法是 Collect.js 中非常方便实用的一项过滤器,可以帮助程序员轻松地筛选出符合要求的数据,提高代码的可读性和可维护性。