Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

310
Views
¿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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!