Javascript 如何重构数组上的.filter方法,以便传递过滤所需的另一个变量?

Javascript 如何重构数组上的.filter方法,以便传递过滤所需的另一个变量?,javascript,arrays,filter,Javascript,Arrays,Filter,给定一个包含参与者列表的数组,一些学生,一些教师: var participants = [ {'name': 'G01a','email':'g01a@m.io','group': '1','role':'student'}, {'name': 'G01b','email':'g01b@m.io','group': '1','role':'student'}, {'name': 'G02a','email':'g02a@m.io','group': '2','role'

给定一个包含参与者列表的数组,一些学生,一些教师:

var participants = [
    {'name': 'G01a','email':'g01a@m.io','group': '1','role':'student'},
    {'name': 'G01b','email':'g01b@m.io','group': '1','role':'student'},
    {'name': 'G02a','email':'g02a@m.io','group': '2','role':'student'},
    {'name': 'G02b','email':'g02b@m.io','group': '2','role':'student'},
    {'name': 'P01', 'email':'p01@m.io', 'group': 'teacher','role':'teacher'},
    {'name': 'P02', 'email':'p02@m.io', 'group': 'teacher','role':'teacher'},
];
我目前编写了两个非常相似的过滤函数来过滤学生,然后是老师:

// DERIVATED INITIAL DATA
var checkRoleS = function (participant){ 
  console.log(participant.role== 'student')
  return participant.role == 'student';
}
var students = participants.filter(checkRoleS);
console.log(students)

// DERIVATED INITIAL DATA
var checkRoleTeachers = function (participant){ 
  console.log(participant.role== 'teacher')
  return participant.role == 'teacher';
}
var teachers = participants.filter(checkRoleTeachers);
console.log(teachers)
如何使一个checkRole函数具有一个或多个参数sot,以转发筛选所需的字符串student或teacher

因此得到如下结果:

var students = participants.filter(checkRole("students"));
var teachers = participants.filter(checkRole("teachers"));

编辑:

您可以使用一个匿名函数调用您的check函数,并根据需要使用任意多个参数:

风险值参与者=[ {'name':'G01a','email':'g01a@m.io“,”组“:”1“,”角色“:”学生“}, {'name':'G01b','email':'g01b@m.io“,”组“:”1“,”角色“:”学生“}, {'name':'G02a','email':'g02a@m.io“,”组“:”2“,”角色“:”学生“}, {'name':'G02b','email':'g02b@m.io“,”组“:”2“,”角色“:”学生“}, {'name':'P01','email':'p01@m.io“,”组“:”教师“,”角色“:”教师“}, {'name':'P02','email':'p02@m.io“,”组“:”教师“,”角色“:”教师“}, ]; var checkRole=函数参与者,角色{ console.logparticipant.role===角色 返回参与者。角色===角色; } var students=参与者。filteri=>checkRolei,学生; 学生们 var teachers=participants.filteri=>checkRolei,teacher; console.logteachersThanks,我现在使用变量getAllByRole=functionparticipantsArray,角色{return participantsArray.filterfunction I{return I.role==role;};根据你的答案推导出来的。看见