📜  Underscore.js _.reject函数(1)

📅  最后修改于: 2023-12-03 14:48:10.509000             🧑  作者: Mango

Underscore.js _.reject函数介绍

Underscore.js是一个JavaScript工具库,提供了一系列对数组、对象、函数等数据结构和类型的操作和处理方法,其中包括了函数_.reject()

函数介绍

_.reject(list, predicate, [context]):筛选出list中所有未通过predicate判断的元素,并返回一个新的数组。predicate提供每个元素的value和index,应该返回一个布尔值来指示该元素是否应该被忽略。_.reject()_.filter()的区别在于,它的过滤条件是元素不满足predicate指定的条件。

函数使用
基本使用

以下是一个简单的例子,使用_.reject()过滤出数组中所有的偶数:

const _ = require('underscore');

const numbers = [1, 2, 3, 4, 5, 6];

const oddNumbers = _.reject(numbers, function(num) {
  return num % 2 === 0;
});

console.log(oddNumbers); // [ 1, 3, 5 ]

上面代码中,我们使用了_.reject()来过滤出了数组中所有的奇数。

使用context

如果要在predicate中使用到this,可以传递一个context对象作为第三个参数,例如:

const _ = require('underscore');

const obj = {
  name: 'Tom',
  age: 26,
  isAdult: function() {
    return this.age >= 18;
  },
  isNameEqual: function(name) {
    return this.name === name;
  }
};

const people = [
  { name: 'Tom', age: 16 },
  { name: 'Jerry', age: 12 },
  { name: 'Leo', age: 22 }
];

const adults = _.reject(people, function(person) {
  return this.isAdult.call(person);
}, obj);

console.log(adults); // [ { name: 'Tom', age: 16 }, { name: 'Jerry', age: 12 } ]

上面代码中,我们通过传递obj作为context来在predicate中调用isAdult()方法。

总结

_.reject()函数可以方便地过滤出不符合条件的数组元素,并返回一个新的数组。其语法简单,使用起来灵活方便。