📜  Collect.js whereNotIn() 方法(1)

📅  最后修改于: 2023-12-03 15:30:03.417000             🧑  作者: Mango

Collect.js whereNotIn() 方法

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 中非常方便实用的一项过滤器,可以帮助程序员轻松地筛选出符合要求的数据,提高代码的可读性和可维护性。