Underscore.js是一个实用的JavaScript函数工具库,提供了许多函数操作和工具,帮助我们更容易地操作JavaScript数据。其中,_.reject
是其中一个非常实用的函数,可以对集合(collection)数据类型进行过滤操作。
一、函数介绍
_.reject(list, predicate, [context])
:遍历一个集合,返回所有符合条件 predicate
的元素。注:与 _.filter
函数恰好相反。
例如,我们有一个数组 arr
,元素是整型数字:
var arr = [1, 2, 3, 4, 5];
如果我们想要过滤掉数组中所有的偶数,可以使用_.reject
函数,如下所示:
var result = _.reject(arr, function(num){ return num % 2 == 0; });
console.log(result); // [1, 3, 5]
上述代码在 arr
数组上应用了 _.reject
函数,第二个参数是一个函数,用来定义过滤条件,使用给定的函数对每个元素进行计算,返回 true 则过滤掉元素,返回 false 则保留元素。由于我们定义的函数是奇偶性判定,因此返回的是所有为奇数的元素。
_.reject
函数的第三个可选参数 context
是上下文对象,我们可以在函数调用时指定上下文,保证函数内部的 this
关键字指向我们指定的对象。
二、函数示例
示例一:过滤掉数组中的负数
我们有一个数组arr
,里面既有正数、也有负数,现在我们想要过滤掉数组中的负数,可以使用_.reject
函数,代码如下:
var arr = [-1, 2, 3, -4, 5];
var result = _.reject(arr, function(num){ return num < 0 });
console.log(result); // [ 2, 3, 5 ]
在上述代码中,我们使用了_.reject
函数,函数的第一个参数是要进行操作的数组,第二个参数是一个函数,用来定义过滤条件。我们在函数中使用了小于 <
运算符,筛选出数组中的正数,最终得到了过滤掉负数后的结果。
示例二:过滤对象数组中符合条件的元素
我们有一个对象数组users
,每个元素包含了不同的属性,其中一个属性是active
。我们现在需要过滤出数组中active
属性值为false的元素,可以使用_.reject
函数,如下所示:
var users = [
{ 'user': 'barney', 'active': true },
{ 'user': 'fred', 'active': false },
{ 'user': 'pebbles', 'active': false }
];
var result = _.reject(users, function(user){ return !user.active; });
console.log(result); // [{ 'user': 'barney', 'active': true }]
在上述代码中,我们使用了_.reject
函数,函数的第一个参数是要进行操作的对象数组 users
,第二个参数是一个函数,用来定义过滤条件。我们在函数中使用了!user.active
,筛选出 active
属性值为 true 的元素,最终得到了过滤掉 active
属性值为 false 的结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Underscore.js _.reject函数 - Python技术站