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

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

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 Report

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 Report

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 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!