如果不是JavaScript中的数字,如何将字符串转换为数字并保留字符串?

时间:2018-11-27 17:22:04

标签: javascript arrays

我尝试了几种将字符串转换为数字的方法(Number,parseFloat,* 1),但每次都无法获得所需的值:

var str = ["0.20", "day"];
var num;

str.forEach(v => {
  num = parseFloat(v);
  console.log(num);
})

如何在结果中得到0.2和数字“ day”作为字符串[0.2,“ day”]?

1 个答案:

答案 0 :(得分:1)

检查解析的值是否不是数字(NaN)。如果是这样,请按原样打印字符串,否则将其转换。

l = parseFloat(v)在这里,我尝试将值转换为float并将结果分配给变量l

isNaN()是一种内置方法,用于检查某个结果是否不是数字,是我用来检查变量l是否是数字的方法。

?是三元运算符

如果

v不是数字(如果是NaN),则会打印出

否则,将打印l(已分析的值)

var str = ["0.20", "day"];

console.log(
  str.map(v => isNaN(l = parseFloat(v))? v : l)
)

/* A shorter way is to do */

console.log(
  str.map(v=>+v||v)
)