• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

214
Vistas
eliminar el signo al principio del número - JS

Obtengo un resultado de cálculo menos el número resultante. Cuando quiero eliminar el signo menos delante de este número, recibo una advertencia "... no es una función". ¿Cuál es la razón de esto?

 function cms(miliseconds, format) { let days, hours, minutes, seconds, total_hours, total_minutes, total_seconds; total_seconds = parseInt(Math.floor(miliseconds / 1000)); total_minutes = parseInt(Math.floor(total_seconds / 60)); total_hours = parseInt(Math.floor(total_minutes / 60)); days = parseInt(Math.floor(total_hours / 24)); seconds = parseInt(total_seconds % 60); minutes = parseInt(total_minutes % 60); hours = parseInt(total_hours % 24); switch (format) { case 's': return total_seconds; case 'm': return total_minutes; case 'h': return total_hours; case 'd': return days; default: return {d: days, h: hours, m: minutes, s: seconds}; } } const cd3F = cms(...); // Result: -3512 cd3F.slice(1));

TypeError no detectado: cd3F.slice no es una función no es una función

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

0

Su función cms devolverá un Número o un Objeto, y ninguno de ellos tiene un método de slice .

Una mejor función para usar sería Math.abs() , que convertirá cualquier número negativo en uno positivo (y dejará cualquier número positivo solo), pero tenga en cuenta que devolverá NaN si le pasa un objeto.

about 3 years ago · Juan Pablo Isaza Denunciar

0

El método .slice es para cadenas y matrices , no para números.

 function cms(miliseconds, format) { let days, hours, minutes, seconds, total_hours, total_minutes, total_seconds; total_seconds = parseInt(Math.floor(miliseconds / 1000)); total_minutes = parseInt(Math.floor(total_seconds / 60)); total_hours = parseInt(Math.floor(total_minutes / 60)); days = parseInt(Math.floor(total_hours / 24)); seconds = parseInt(total_seconds % 60); minutes = parseInt(total_minutes % 60); hours = parseInt(total_hours % 24); switch (format) { case 's': return total_seconds; case 'm': return total_minutes; case 'h': return total_hours; case 'd': return days; default: return {d: days, h: hours, m: minutes, s: seconds}; } } const cd3F = cms(...); // Result: -3512 const abs_cd3F = Math.abs(cd3F);

Deberías usar Math.abs . Solo si fuera una cadena, podrías usar .slice(1).

Si solo desea números positivos, también puede colocar Math.abs dentro de su función.

 function cms(milliseconds, format) { milliseconds = Math.abs(milliseconds); let days, hours, minutes, seconds, total_hours, total_minutes, total_seconds; total_seconds = parseInt(Math.floor(milliseconds / 1000)); total_minutes = parseInt(Math.floor(total_seconds / 60)); total_hours = parseInt(Math.floor(total_minutes / 60)); days = parseInt(Math.floor(total_hours / 24)); seconds = parseInt(total_seconds % 60); minutes = parseInt(total_minutes % 60); hours = parseInt(total_hours % 24); switch (format) { case 's': return total_seconds; case 'm': return total_minutes; case 'h': return total_hours; case 'd': return days; default: return {d: days, h: hours, m: minutes, s: seconds}; } } const cd3F = cms(-3512000, "s"); // Result: 3512
about 3 years ago · Juan Pablo Isaza Denunciar

0

¿Por qué tan complicado? n * -1

 const cd3F = cms(...); // Result: -3512 cd3F = cd3F < 0 ? cd3F * -1 : cd3F; console.log(cd3F); // 3512
about 3 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda