从带括号的字符串转换为数组

时间:2015-08-07 06:56:17

标签: javascript jquery json

console.log(number);
[
  "1,2,3"
]

上面是一个字符串,如何将其正确地转换为数组?我尝试了JSON.parse(number)和JSON.parse(“[”+ number +“]”);我仍然无法将它们分开并将其转换为正确的数组。

1 个答案:

答案 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>

如果您希望数组(123)中的数字而不是字符串("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));