Je souhaite convertir une variable de chaîne comme suit:

  • la chaîne variable est un float-> convertir en float
  • else string est un entier-> converti en entier
  • else return string

C'est ce que j'ai essayé actuellement:

function parse(x){
    return x==parseFloat(x)?parseFloat(x):
           x==parseInt(x)?parseInt(x):
           x
}

console.log(typeof parse("11.5"),parse("11.5"))
console.log(typeof parse("11"),parse("11"))
console.log(typeof parse("11.5A"),parse("11.5A"))

Je cherche des solutions s'il existe un moyen plus efficace et plus direct de le faire.

1
Nilanka Manoj 15 avril 2020 à 17:37

2 réponses

Meilleure réponse

J'ai trouvé que c'était plus efficace:

function parse(x){
  return x==x*1?x*1:x
 }
function parse(x){
      return x==x*1?x*1:x
 }
console.log(typeof parse("11.5"),parse("11.5"))
console.log(typeof parse("11"),parse("11"))
console.log(typeof parse("11.5A"),parse("11.5A"))
0
Nilanka Manoj 15 avril 2020 à 15:18
const parse = x => !isNaN(x) ? Number(x) : x

console.log(parse(1), typeof parse(1))
console.log(parse(1.5), typeof parse(1.5))
console.log(parse('1'), typeof parse('1'))
console.log(parse('1A'), typeof parse('1A'))
console.log(parse(0), typeof parse(0))
console.log(parse('0'), typeof parse('0'))
0
lucas 15 avril 2020 à 14:57