Я работаю с некоторыми json, возвращенными через вызов API, и пытаюсь выяснить, возможно ли отфильтровать один json объект на основе значений из другого. Я сталкивался с сетом и картой, которая близка, но не уверен, как обращаться с вложенным атрибутом ... вот упрощенный пример:
var teachers = [
{id: 1, name : 'Bob',studentid: []},
{id: 2, name : 'Sue',studentid: []},
{id: 3, name : 'Jean',studentid: []},
{id: 4, name : 'Jim',studentid: [
"500zz"
]},
{id: 5, name : 'Paul',studentid: [
"100zz",
"120zz",
"130zz"
]}
];
var students = [
{_id: "100zz", name : 'Betty'},
{_id: "120zz", name : 'Bob'},
{_id: "500zz", name : 'Billy'}
];
console.log(
teachers.filter(
(set => item => set.has(item.studentid))(new Set(students.map(item => item._id)))
)
)
Я хотел бы, чтобы в результат были включены только учителя Джим и Пол (со всеми связанными данными) ... не уверен, что мне нужно добавить или сделать? Множество студентов бросает меня за все oop.