Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

119
Vistas
matriz de filtros con los mismos valores

Necesito encontrar a todos los empleados (EmpID) con los mismos proyectos (ProjectID), los datos serán dinámicos, esta matriz es, por ejemplo.

 [ { EmpID: '143,', ProjectID: '12,', DateFrom: '2013-11-01,', DateTo: '2014-01-05\r' }, { EmpID: '218,', ProjectID: '10,', DateFrom: '2012-05-16,', DateTo: 'NULL\r' }, { EmpID: '143,', ProjectID: '10,', DateFrom: '2009-01-01,', DateTo: '2011-04-27' }, ];

Quiero que esta matriz sea ->

 [ { EmpID: '218,', ProjectID: '10,', DateFrom: '2012-05-16,', DateTo: 'NULL\r' }, { EmpID: '143,', ProjectID: '10,', DateFrom: '2009-01-01,', DateTo: '2011-04-27' }, ];
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Prueba algo como esto:

 const projectEmployees = employees.filter( emp => emp.ProjectID === '12' );

Ver Array.filter() para los detalles sangrientos.

O... rueda el tuyo:

 function selectEmployeesByProjectId( employees, id ) { let projectEmployees = []; for ( const emp of employees ) { if ( emp.ProjectID === id ) { projectEmployees.push(emp); } } return projectEmployees; }

Si sus datos son realmente dinámicos y no conoce su verdadera forma, aparte de una lista de objetos, simplemente haga que su función sea flexible, algo como lo siguiente. [Pero aún necesitará saber con qué propiedad o propiedades comparar para hacer su filtrado.

 function selectMatchingObjects( listOfObjects, isWanted ) { return listOfObjects.filter( isWanted ); }

donde isWanted es una función que acepta un objeto y devuelve un valor booleano true si el objeto debe conservarse, o false si el objeto debe descartarse.

Una vez que tengas eso, puedes hacer algo como

 function selectEmployeesByProject( employees , projectIdKey , projectId ) { const isWanted = emp = emp[projectIdKey] === projectId; return employees.filter( isWanted ); }

Y entonces

 const employees = getMySomeDynamicEmployees(); . . . const projectEmployees = selectEmployeesByProject(employees, 'ProjectId', '10');
about 4 years ago · Juan Pablo Isaza Denunciar

0

Debería poder usar Array.reduce para lograr esto

 // The "trick" is to pull out the first item and then use that as the match candidate const [head, ...tail] = [{ EmpId: 1 }, { EmpId: 2 }, { EmpId: 1 }] const output = tail.reduce( (acc, b) => { if (acc.map(o => o.EmpId).includes(b.EmpId)) { acc.push(b) } return acc }, [head] )
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda