首页 > 解决方案 > 如何将字符串转换为正确类型的元素数组

问题描述

我正在尝试将字符串转换为正确类型的元素数组。

元素可以是字符串或数字。

示例代码:

let str = "foo,12,hello,3.14,world,0"
let arr = str.split(",");
console.log(arr);

我得到的结果:

["foo", "12", "hello", "3.14", "world", "0"]

我想要的结果:

["foo", 12, "hello", 3.14, "world", 0]

有没有简单的方法来实现这一目标?

标签: javascript

解决方案


你映射它,然后检查它是否是 nan isNaN。如果它是一个字符串,否则它是一个数字

let str = "foo,12,hello,3.14,world,0"
let arr = str.split(",").map(item => isNaN(+item) ? item : +item);
console.log(arr)

如果你想知道+做什么:

一元加号运算符将其操作数转换为数字类型。

如果它是一个字符串,它将返回NaN,因为你不能NaN像这样检查NaN === NaN你需要用内置方法检查它isNaN

console.log(NaN === NaN);
console.log(NaN == NaN);
console.log(isNaN(NaN));
console.log(isNaN(+"i am an string"));


推荐阅读