在javascript中拆分数组

时间:2015-04-15 12:12:30

标签: javascript

我有一个字符串值,传递给我的javascript文件,如:

"["244aac9a-0833-40a2-b8e9-9bef89562b2e","a392913d-9a17-4c30-ba99-f9ad9745fa0a","f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]"

我想用每个逗号分隔GUID。

所以我做了这样的事情:

var string = "["244aac9a-0833-40a2-b8e9-9bef89562b2e","a392913d-9a17-4c30-ba99-f9ad9745fa0a","f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]";

var array = string.split(',');

当我索引数组时,我得到了结果:

array[0] = "["244aac9a-0833-40a2-b8e9-9bef89562b2e""
array[1] = ""a392913d-9a17-4c30-ba99-f9ad9745fa0a""
array[2] = ""f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]"

这与我的需求非常接近,但最好的方法是摆脱额外的""来自[的{​​{1}}和array[0]的{​​{1}}

5 个答案:

答案 0 :(得分:6)

JSON怎么样?

JSON.parse('["244aac9a-0833-40a2-b8e9-9bef89562b2e","a392913d-9a17-4c30-ba99-f9ad9745fa0a","f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]')

答案 1 :(得分:0)

您可以在拆分前移除"[]

var array = str.replace(/["[\]]/g, "").split(",");

/["[\]]/g是一个正则表达式,用于定义包含字符"[]的字符类,这意味着“这里有任何这些字符”。它用空字符串替换任何匹配的东西。

示例:

var str = "[\"244aac9a-0833-40a2-b8e9-9bef89562b2e\",\"a392913d-9a17-4c30-ba99-f9ad9745fa0a\",\"f5eca9a9-c6ef-4abb-b54c-134271d69cd9\"]";
var array = str.replace(/["[\]]/g, "").split(",");
array.forEach(function(entry, index) {
  snippet.log("array[" + index + "]: " + entry);
});
<!-- 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>

答案 2 :(得分:0)

略过[],删除逗号&amp;空间,分裂:

var string = "[\"A\", \"B\", \"C\"]";

var arr = string.substr(1, string.length - 2).replace(/[\"\s]/g, "").split(",");

alert(arr);

答案 3 :(得分:0)

虽然答案Splitting Array in javascript是正确的,但还需要更多解释。

给出字符串:

"["244aac9a-0833-40a2-b8e9-9bef89562b2e","a392913d-9a17-4c30-ba99-f9ad9745fa0a","f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]"

此字符串遵循常见的JSON数组格式http://www.w3.org/TR/json-ld/#dfn-array

  

数组结构表示为零的方括号   或更多的价值观。值以逗号分隔。在JSON中,数组是   零序或多个值的有序序列。

在示例字符串中,每个对象实际上都是一个字符串,因为它被"'标记包围。要将JSON字符串解析为对象,只需调用:

var jsonObject = JSON.parse(string);

这将导致字符串的对象数组。然后可以以常见的JavaScript Array方式进行迭代或管理。

答案 4 :(得分:-1)

实现此目的的一种方法是通过eval()函数而不使用任何库。

var arr = '["244aac9a-0833-40a2-b8e9-9bef89562b2e","a392913d-9a17-4c30-ba99-f9ad9745fa0a","f5eca9a9-c6ef-4abb-b54c-134271d69cd9"]';

var arrObj = eval(arr);
console.log(arrObj.length) //length is 3

还将字符串值包装在单引号(&#39;)中,而不是双引号(&#34;)。