下划线包含基于对象属性

cla*_*ent 5 javascript underscore.js

我想使用 Underscore.js 来确定数组中是否存在对象的实例。

一个示例用法是:

var enrollments = [
    { userid: 123, courseid: 456, enrollmentid: 1 },
    { userid: 123, courseid: 456, enrollmentid: 2 },
    { userid: 921, courseid: 621, enrollmentid: 3 }
]
Run Code Online (Sandbox Code Playgroud)

我希望能够识别用户 ID 和课程 ID 相同的唯一注册。

所以基本上,给定一个注册列表,我可以根据用户 ID 和课程 ID 的匹配来删除重复项,但不能根据注册 ID 来删除重复项。

Jon*_*uin 5

您可以使用Underscorefilter中的方法:

function contains(arr, userid, courseid){

 var matches = _.filter(arr, function(value){ 
    if (value.userid == userid && value.courseid == courseid){ 
      return value;
    } 
 });

 return matches;
}

contains(enrollments, 123, 456);
Run Code Online (Sandbox Code Playgroud)