Учитывая массив со списком участников, некоторые студенты, некоторые учителя:
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'},
];
В настоящее время я пишу 2 очень похожих функции фильтра для фильтров учеников, затем учителя:
// 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 для передачи строки «ученик» или «учитель», необходимой для фильтрации?
Таким образом получается что-то вроде:
var students = participants.filter(checkRole("students"));
var teachers = participants.filter(checkRole("teachers"));
РЕДАКТИРОВАТЬ: jsfiddle