将字符串格式的int数组转换为数组

时间:2016-11-21 09:30:08

标签: javascript arrays type-conversion

我有一个以字符串格式存储的整数数组。

例如:

"[3,2,1]"

如何将其转换为实际数组?

我搜索了一个简单的解决方案的高低,但我似乎无法找到它。

将字符串传递给JSON.parse和$ .parseJSON会导致“[”显示为0索引。所以我假设它没有做任何事情。

5 个答案:

答案 0 :(得分:0)

从您更新的说明中看来,您有一个以"开头和结尾的字符串,因此简单的JSON.parse不起作用,因为这只会转换"之间的内容。一个字符串。你需要两次JSON.parse,因为你有一个嵌入字符串的整数数组,或者手动解析。

JSON.parse两次:

var str = '"[3,2,1]"';
var parsedStr = JSON.parse(str); // results in a string with contents [3,2,1]
var intArray = JSON.parse(parsedStr); // results in an int array with contents [3,2,1]

或者,如果格式在某些时候可能会变为非JSON,那么手动方式:

var str = '"[3,2,1]"';
var intArray = [];

str.substr(2,str.length-3).split(/,/g).forEach(function(numStr) {
  intArray.push(parseInt(numStr));
});

答案 1 :(得分:0)

var arr = JSON.parse(“[3,2,1]”)

答案 2 :(得分:0)

var text = "[3,2,1]";
var obj = JSON.parse(text);
console.log(obj);

答案 3 :(得分:0)

您可以使用jQuery $.parseJSON() 方法:

$(this).parents('tr').find('.receipt_info').show();

var arr = $.parseJSON("[3,2,1]");
var str = "[3,2,1]";

console.log( $.parseJSON(str) );

或纯粹的javascript方法 JSON.parse()

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

希望这有帮助。

var arr = JSON.parse("[3,2,1]");
var str = "[3,2,1]";

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

答案 4 :(得分:0)

所以我发现我需要将第一个和最后一个字符切掉,因为某些原因字符串被返回为&#34;&#34; [3,2,1]&#34; &#34;而不是&#34; [3,2,1]&#34;即使它没有引号存储。