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

135
Vistas
¿La mejor manera de "agrupar por" una matriz de objetos en ES6 JS?

Estoy aprendiendo JS y desde un fondo en SQL estoy tratando de entender la mejor manera de simular una consulta "Agrupar por" en una matriz de objetos. Por ejemplo, quiero devolver la "Tarea" más reciente que aún no se ha completado. ¿Es esto posible con la función de mapa ES6?

 [ { "id": 581337, "date_due": "2021-10-04", "task": "Client Billing Activity Review", "is_completed": 1, }, { "id": 581338, "date_due": "2021-12-10", "task": "Client Billing Activity Review", "is_completed": 0, }, { "id": 581339, "date_due": "2022-01-09", "task": "Client Billing Activity Review", "is_completed": 0, }, { "id": 581340, "date_due": "2022-04-10", "task": "Client Billing Activity Review", "is_completed": 0, } ]

En SQL mi consulta sería:

 select task, min(date_due) as next due_date from table where date_due > today() and is_completed = 0 group by task

Sandbox de JS aquí: https://parsebox.io/jamieroyce/tmbghkcyfwkh

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La solución más limpia que pude encontrar para hacer esto es: Cree un diccionario, filtre los registros que no sean necesarios, recorra el diccionario y mantenga la tarea con la siguiente fecha más cercana:

 const dict = {}; input.filter(n => n.is_completed === 0 && new Date(n.date_due) - new Date() > 0) .forEach(n => { dict[n.task] = dict[n.task] || n; if (new Date(dict[n.task].date_due) < new Date(n.date_due)) { dict[n.task] = n; } }); return dict;
about 4 years ago · Santiago Trujillo 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