console.log(number);
[
"1,2,3"
]
上面是一个字符串,如何将其正确地转换为数组?我尝试了JSON.parse(number)
和JSON.parse(“[”+ number +“]”);我仍然无法将它们分开并将其转换为正确的数组。
答案 0 :(得分:2)
如果它显示的是真的,那么它就是一个包含单个条目的数组,这是一个字符串。
JavaScript中没有“强制转换”,因为JavaScript是松散类型的,但您可以通过split
将单个字符串转换为字符串数组:
number = number[0].split(',');
[0]
就在那里,因为你所展示的是一个数组,所以我们正在使用它中唯一的一个条目(在索引0处)。
直播示例:
var number = ["1,2,3"];
number = number[0].split(',');
snippet.log(JSON.stringify(number));
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
如果它只是一个字符串,而不是包含字符串的数组,请不要使用[0]
:
number = number.split(',');
直播示例:
var number = "1,2,3";
number = number.split(',');
snippet.log(JSON.stringify(number));
<!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
如果您希望数组(1
,2
和3
)中的数字而不是字符串("1"
,{{1 }}和"2"
),我们必须解析那些。一种方法是使用"3"
和一元Array#map
运算符,如果可能,将其操作数转换为数字(如果不是,则转换为+
):
NaN
(同样,如果你开始的只是一个字符串,那么删除number = number[0].split(',').map(function(str) {
return +str;
});
,而不是包含字符串的数组。)
直播示例:
[0]
var number = ["1,2,3"];
number = number[0].split(',').map(function(str) {
return +str;
});
snippet.log(JSON.stringify(number));