Javascript split()未给出预期结果

Javascript split()未给出预期结果,javascript,Javascript,我对我的.split()函数的使用有疑问。 不知何故,当我展开行时,可以访问数组中的第一个[0]元素,但第二个[1]元素无法访问 我有以下字符串: ,{"relationID":"000001","recID":"1d2712eb-4f08-4b4f-b6e9-600c9631b503" 下面的代码是我如何尝试拆分它的(tempArray包含x个字符串,如上所示): 当我使用alert(s1)或alert(s2)时,我确实得到了值,但是,以下错误总是发生在最后一行(var s2): 捕获的T

我对我的.split()函数的使用有疑问。 不知何故,当我展开行时,可以访问数组中的第一个[0]元素,但第二个[1]元素无法访问

我有以下字符串:

 ,{"relationID":"000001","recID":"1d2712eb-4f08-4b4f-b6e9-600c9631b503"
下面的代码是我如何尝试拆分它的(tempArray包含x个字符串,如上所示):

当我使用alert(s1)或alert(s2)时,我确实得到了值,但是,以下错误总是发生在最后一行(var s2):

捕获的TypeError:无法读取未定义的属性“split”

这会导致我的脚本的其余部分崩溃,它无法完成它应该完成的任务,显示一个空页面

我的问题是,这里出了什么问题?为什么s1正常工作,而s2除了行数组的索引之外完全相同,会使我的脚本崩溃

当我使用报警功能检查变量s1和s2的值时,我想强调一下,它们确实包含正确的值

编辑: 也许是一个不错的奖金,因为可能有一个更容易的方法。 在得到s1和s2的值后,我想把它们放在一个地图中,如下所示:

map[s2] = s1;

正如您可能知道的,我使用的字符串是在('}')上拆分1个巨大字符串的结果。此处显示的代码是我在通过该数组循环时所做的操作。

这只能由试图访问数组中真正未定义的元素引起。可能您的输入不是您所期望的

在尝试读取数组的那些索引之前,请检查
line.length>1

由于它似乎是一个JSON,可能您应该尝试解析JSON,这将使您的代码更加可读和可靠。在使用前检查
JSON.parse
浏览器兼容性(IE8+)

例如:

var data = JSON.parse('{ "field1": "value1", "field2": "value2" }');

var s1 = data['field1'];
var s2 = data['field2'];

希望我能提供帮助。

正如错误所述,
行[1]
未定义。按原样运行代码没有问题。运行代码没有问题code@forgivenson它怎么可能是未定义的?很明显它存在,如果我尝试alert(第[1]行),我甚至会得到一个值;我想你最好把这件事弄清楚。这确实是我一直在寻找的,但仍然存在一个错误,可能是@credenson所说的关于我的数据不符合我的预期。编辑不太可能,它实际上是意外的输入。试试twitter,它在我的个人资料中,但我真的没有很多空闲时间。你可以在这里问,如果我知道如何帮助你,我会给你一个tryNvm,我已经弄明白了,解析一个完整的jason对象。无论如何谢谢,我真的很感激:)
var data = JSON.parse('{ "field1": "value1", "field2": "value2" }');

var s1 = data['field1'];
var s2 = data['field2'];