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

289
Vistas
¿Cómo eliminar una parte de una cadena que siempre estará al final?

Hice una función que elimina la última parte de la cadena que siempre comenzará desde _ y obtendrá el número entero, pero todo lo que obtengo es la parte del texto y no el número entero.

¿Cómo se puede lograr esto?

 function splitLast(arg) { if (arg.includes(".") && arg.includes("_")) { return parseFloat(arg.split("_").pop()) } else if (arg.includes(".") != true && arg.includes("_")) { return parseInt(+arg.split("_").pop()) } else { throw "Arguments passed does not contain the valid result characters or isnt a required Datatype for thefunction" } } console.log(splitLast("22_no"), 'should be 22') console.log(splitLast("22.1_no"), 'should be 22.1')

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

0

UPD: una solución mejor

Puede usar la función parseFloat() sin verificaciones adicionales ni análisis de cadenas (lo hará todo por usted):

 function splitLast(arg) { if (isNaN(arg.trim()[0])) { throw new Error('argument is not valid') } return parseFloat(arg) } console.log(splitLast("22_no"), 'should be 22') console.log(splitLast("22.1_no"), 'should be 22.1') console.log(splitLast("a22.1_no"), 'should throw') console.log(splitLast(" a22.1_no"), 'should throw')

Se necesita la comprobación isNaN() porque parseFloat(string) devuelve:

  1. Un número de coma flotante analizado a partir de la cadena dada (que es exactamente lo que necesita)
  2. NaN cuando el primer carácter que no es un espacio en blanco no se puede convertir en un número (lo cual es un caso límite pero debemos saberlo)

Solución antigua:

Probablemente, tenga que usar el método shift() en lugar de pop() .


El método pop() elimina el último elemento de una matriz y devuelve ese elemento. Este método cambia la longitud de la matriz.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop

El método shift() elimina el primer elemento de una matriz y devuelve ese elemento eliminado. Este método cambia la longitud de la matriz.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift


 function splitLast(arg) { if (arg.includes(".") && arg.includes("_")) { return parseFloat(arg.split("_").shift()) } else if (arg.includes(".") != true && arg.includes("_")) { return parseInt(arg.split("_").shift()) } else { throw "Arguments passed does not contain the valid result characters or isnt a required Datatype for thefunction" } } console.log(splitLast("22_no"), 'should be 22') console.log(splitLast("22.1_no"), 'should be 22.1')


about 4 years ago · Juan Pablo Isaza Denunciar

0

Podrías usar una expresión regular y .replace :

 function splitLast(value) { return value.replace(/_.*$/, ''); } console.log(splitLast("22_no"), 'should be 22') console.log(splitLast("22.1_no"), 'should be 22.1')

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede usar esto para eliminar el texto de la cadena y solo quedan los números con guiones bajos.

 var ret = "22.1_no"; var str = ret.replace(/[^0-9\.]+/g, ""); console.log("_"+str);
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