📅  最后修改于: 2023-12-03 14:48:10.509000             🧑  作者: Mango
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()
来过滤出了数组中所有的奇数。
如果要在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()
函数可以方便地过滤出不符合条件的数组元素,并返回一个新的数组。其语法简单,使用起来灵活方便。