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

141
Vistas
¿Por qué mi función math.abs no devuelve verdadero?

El tiempo de espera de la función decide si la diferencia absoluta de las fechas dadas (fecha1 y fecha2) es mayor que la diferencia absoluta dada, por lo que debe devolver verdadero si la diferencia entre fecha1 y fecha2 es mayor que el parámetro timeLimit

Codifiqué lo siguiente:

pero en mis archivos de prueba, (1) y (2) todavía fallan pero el otro pasa y no sé por qué. Si cambio el

 return Math.abs(date1 - date2) > limiet;

a

 return Math.abs(date1 - date2) < limiet;

luego (1) y (2) pasan pero el otro falla como se muestra a continuación. ¿Cómo puedo codificarlo para que todo se pase?

 function timeout(date1, date2, timeLimit) { const limiet = timeLimit * 60000; return Math.abs(date1 - date2) > limiet; } console.log(timeout(new Date("2019-09-01T08:30:00"), new Date("2019-09-01T11:30:00"), 60), "should return false") console.log(timeout(new Date("2019-09-01T11:30:00"), new Date("2019-09-01T08:30:00"), 60), "should return false") console.log(timeout(new Date("2019-09-01T11:30:00"), new Date("2019-09-01T08:30:00"), 190), "should return true") console.log(1,timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:01:00"), -5), "should return true") console.log(2,timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:01:00"), -1), "should return true") console.log(timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:01:00"), 0), "should return false") console.log(timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:01:00"), 1), "should return false") console.log(timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:01:00"), 2), "should return false") console.log(timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:01:00"), 3), "should return true")

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

0

Necesitas Math.abs the limite también

También tuvo un error lógico en su (2): no tuvo más de un minuto de diferencia y tiene < no <= por lo que necesitamos una diferencia

 const ms2MMSS = ms => { let minutes = Math.floor(ms / 60000); let seconds = ((ms % 60000) / 1000).toFixed(0); return minutes + ":" + (seconds < 10 ? '0' : '') + seconds; } function timeout(date1, date2, timeLimit) { const limiet = Math.abs(timeLimit * 60000); console.log(ms2MMSS(limiet),ms2MMSS(Math.abs(date1.getTime()-date2.getTime()))); return Math.abs(date1 - date2) < Math.abs(limiet); } console.log(timeout(new Date("2019-09-01T08:30:00"), new Date("2019-09-01T11:30:00"), 60), "should return false") console.log(timeout(new Date("2019-09-01T11:30:00"), new Date("2019-09-01T08:30:00"), 60), "should return false") console.log(timeout(new Date("2019-09-01T11:30:00"), new Date("2019-09-01T08:30:00"), 190), "should return true") console.log(1,timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:01:00"), -5), "should return true") console.log(2,timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:00:00"), -2), "should return true") console.log(timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:01:00"), 0), "should return false") console.log(timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:01:00"), 1), "should return false") console.log(timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:01:00"), 2), "should return false") console.log(timeout(new Date("2019-08-31T23:59:00"), new Date("2019-09-01T00:01:00"), 3), "should return true")

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