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

197
Vistas
¿Cómo obtener la diferencia entre los datos más recientes y anteriores en una matriz dentro de una hora usando javasscript?

Tengo esta matriz de objetos:

 0: {time: '2021-12-02T23:53:54.062Z', value: 558316} 1: {time: '2021-12-03T00:53:53.959Z', value: 558452} 2: {time: '2021-12-03T01:53:53.934Z', value: 558588} 3: {time: '2021-12-05T23:53:48.617Z', value: 568039} 4: {time: '2021-12-06T00:53:48.609Z', value: 568174} 5: {time: '2021-12-06T01:53:48.545Z', value: 568309} 6: {time: '2021-12-06T02:53:48.480Z', value: 568444} 7: {time: '2021-12-06T03:53:48.393Z', value: 568579}

La pregunta es cómo obtener la diferencia de valor por hora, por ejemplo, el valor de 1: 558452 restar al valor de 0: 558316 es igual a 136. Pero no reste si el valor actual y el anterior no están dentro de una hora, por ejemplo, el valor de 3: 568039 restar al valor de 2: 558588, el valor de 3 es más de una hora del valor de 2. Por lo tanto, estos dos no deben restarse, porque obtendrán un valor alto (9,451) en el gráfico.

Resultado Esperado:

 {time: '2021-12-03T00:53:53.959Z', value: 136} {time: '2021-12-03T01:53:53.934Z', value: 136} {time: '2021-12-06T00:53:48.609Z', value: 135} {time: '2021-12-06T01:53:48.545Z', value: 135} {time: '2021-12-06T02:53:48.480Z', value: 135} {time: '2021-12-06T03:53:48.393Z', value: 135}
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede usar el mapa para calcular la diferencia y luego filtrar en función de esto.

p.ej.

 var data = [ {time: '2021-12-02T23:53:54.062Z', value: 558316}, {time: '2021-12-03T00:53:53.959Z', value: 558452}, {time: '2021-12-03T01:53:53.934Z', value: 558588}, {time: '2021-12-05T23:53:48.617Z', value: 568039}, {time: '2021-12-06T00:53:48.609Z', value: 568174}, {time: '2021-12-06T01:53:48.545Z', value: 568309}, {time: '2021-12-06T02:53:48.480Z', value: 568444}, {time: '2021-12-06T03:53:48.393Z', value: 568579}, ].map(d => (d.time = new Date(d.time), d)); const oneHour = 1000 * 60 * 60; const temp = data.map((m, ix, a) => { if (ix > 0) { m.diff = a[ix].time - a[ix -1].time; m.value2 = a[ix].value - a[ix -1].value; } else { //make first one filter out as //there is no previous m.diff = oneHour + 1; } return m; }) .filter(m => m.diff < oneHour) .map(m => ({ time: m.time, value: m.value2 })); console.log(temp);

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