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

227
Vistas
Cómo evitar el bucle anidado usando TypeScript

Estoy trabajando en una aplicación en la que quiero obtener los nombres de usuario de la matriz employeeList. Aquí lo obtengo usando un bucle anidado, pero esta no es una buena práctica. Aquí está mi código

 let _empList = await this.empService.getEmployeesList(); let taskEvents = await this.taskService.renderedTaskGridData( _tasksData, undefined ); let associatesList = []; for (let proj of this.projectsData) { let projTasks = [...taskEvents.filter((x) => x.ProjectId === proj.Id)]; _empList.forEach((x) => { projTasks.forEach((y) => { y.AssociatedUsersId.forEach((z) => { if ((x.Id = z)) { associatesList.push(`${x.FirstName} ${x.LastName}`); } }); }); }); }

Necesito obtener la lista usando las mejores prácticas.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Continuaré y asumiré que el problema que le preocupa es la complejidad asintótica (es decir, cuánto aumenta su tiempo de ejecución en relación con el tamaño de su entrada).

La forma en que lo resolvería sería hacer un intercambio de tiempo y espacio, así:

 let associatesList = []; const projectIds = new Set(this.projectsData.map((proj) => proj.Id)); const userIds = new Set( taskEvents .filter((task) => projectIds.has(task.ProjectId)) .flatMap((event) => event.AssociatedUsersId) ); const employees = _empList .filter((employee) => userIds.has(employee.Id)) .map((employee) => `${employee.FirstName} ${employee.LastName}`);
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