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

306
Vistas
¿Cómo agrupo objetos en una matriz, si el valor de Fecha es el mismo?

Tengo una matriz de objetos que se parece a lo siguiente:

 [ { "node_name": "node1", "external": "external_node1", "status": "online", "Date": "2022-05-26 08:20:27.022313" }, { "node_name": "node2", "external": "external_node2", "status": "offline", "Date": "2022-05-26 20:20:27.022313" }, { "node_name": "node3", "external": "external_node3", "status": "online", "Date": "2022-05-26 08:20:27.022313" }, { "node_name": "node4", "external": "external_node4", "status": "online", "Date": "2022-05-26 20:20:27.022313" } ]

Usando JavaScript, ¿cómo 'agruparía' e insertaría en su propia matriz, todos los objetos que tienen valores de Date coincidentes?

Por ejemplo, el nodo 1 y el node3 tienen " node1 "2022-05-26 08:20:27.022313" como su valor de Date , así como el node2 2 y el node4 4 tienen el mismo valor de Date .

¿Cómo ordenaría estos objetos y los insertaría en una matriz si los valores de Date coincidieran?

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

0

Puede lograrlo usando una combinación de ordenar y reducir:

 const data = [ { "node_name": "node1", "external": "external_node1", "status": "online", "Date": "2022-05-26 08:20:27.022313" }, { "node_name": "node2", "external": "external_node2", "status": "offline", "Date": "2022-05-26 20:20:27.022313" }, { "node_name": "node3", "external": "external_node3", "status": "online", "Date": "2022-05-26 08:20:27.022313" }, { "node_name": "node4", "external": "external_node4", "status": "online", "Date": "2022-05-26 20:20:27.022313" } ]; const result = data.sort((a,b) => Date.parse(a.Date) - Date.parse(b.Date)). reduce((acc, data) => { const date = data.Date; acc[date] = acc[date] || []; acc[date] = [...acc[date], data]; return acc; }, {}) console.log(result);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Sugeriría usar Array.reduce() para convertir la entrada a la forma deseada.

Puede envolver esto en una función groupBy() . Esto devolverá un objeto con una matriz de objetos para cada valor encontrado.

 const input = [ { "node_name": "node1", "external": "external_node1", "status": "online", "Date": "2022-05-26 08:20:27.022313" }, { "node_name": "node2", "external": "external_node2", "status": "offline", "Date": "2022-05-26 20:20:27.022313" }, { "node_name": "node3", "external": "external_node3", "status": "online", "Date": "2022-05-26 08:20:27.022313" }, { "node_name": "node4", "external": "external_node4", "status": "online", "Date": "2022-05-26 20:20:27.022313" } ] function groupBy(arr, key) { return arr.reduce((acc, el) => { acc[el[key]] = [...(acc[el[key]] || []), el]; return acc; }, {}) } const result = groupBy(input, 'Date'); console.log('Result:', result)
 .as-console-wrapper { max-height: 100% !important; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Use el método .filter() de javascript.

 const newArray = oldArray.filter(data => { return data.Date == "2022-05-26 08:20:27.022313" })

Esto devolverá todos los objetos con valor de fecha como el anterior (2022-05-26 08:20:27.022313), es decir, nodo1 y nodo3 en una matriz diferente.

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