У вас будут проблемы с поиском этих данных в том виде, как они написаны.Реальная проблема заключается в выборе структуры данных.В двух местах вы используете объект, когда вы должны использовать массив.
Здесь те же данные, но с courses
, закодированным как массив, который можно просмотреть с помощью набора rich arrayметоды .Я внес одно и то же изменение в коллекцию студентов для каждого курса.
let courses = [
{
id: 'courseID003',
students: [
{
id: 'studentID34',
assigned: false,
dueDate: null
},
{
id: 'studentID34',
assigned: false,
dueDate: null
}
]
},
{
id: 'courseID007',
students: [
{
id: 'studentID89',
assigned: true,
dueDate: "2018-12-07 15:51"
},
{
id: 'studentID111',
assigned: true,
dueDate: "2018-12-07 15:51"
},
{
id: 'studentID115',
assigned: false,
dueDate: null
}
]
}
];
let unassignedStudents = Array.prototype.concat.apply(
[],
courses.map(c => c.students.filter(s => !s.assigned)));
console.log('unassignedStudents:',unassignedStudents);
С этой улучшенной структурой данных вы можете найти всех «неназначенных» учеников, таких как:
let unassignedStudents = Array.prototype.concat.apply(
[],
courses.map(c => c.students.filter(s => !s.assigned)));
Надеюсь, вы увидите, как это изменение в структуреоткрывает новые двери для вас.
Удачи.