Aquí tengo detalles de asistencia y quiero filtrar todos los datos que contienen id:1 empleados.
por ejemplo: tengo datos como este:
const attendance = [ { date: 1, employees: [ { id: 1, name: 'mahadev', status: 'p' }, { id: 2, name: 'roshan', status: 'p' }, ] }, { date: 2, employees: [ { id: 1, name: 'mahadev', status: 'a' }, { id: 2, name: 'roshan', status: 'p' }, ] }, ];Y quiero una salida como esta:
[ { date:1, employees: [ { id:1, name:'mahadev', status:'p' } ] }, { date:2, employees: [ { id:1, name:'mahadev', status:'a' } ] }, ]Intente usar el mapa y el filtro .
const attendance = [{ date: 1, employees: [ { id: 1, name: 'mahadev', status: 'p' }, { id: 2, name: 'roshan', status: 'p' } ] }, { date: 2, employees: [ { id: 1, name: 'mahadev', status: 'a' }, { id: 2, name: 'roshan', status: 'p' } ] }, ]; const filtered = id => attendance.map(a => { const employees = a.employees.filter(e => e.id === id); return { ...a, employees }; }); console.log(filtered(1));Usando map() y filter()
const filtered = id => attendance.map(a => { const employees = a.employees.filter(emp => emp.id === id); return { date:a.date, employees }; }); console.log(filtered(1))