我通过ajax从服务器获取了json数据:
request.responseText=[{name:xxx},{name:xxx},{name:xx}].
然后我使用
var data=eval(request.responseText);
alert(data.length);
在IE中,它是“4”,而在Firefox中它是“3”。
使用IE调试器我发现数据中的元素如下:
[Methods]
[0]
[1]
[2]
所以它的长度是4。
我想知道为什么?
答案 0 :(得分:2)
我的猜测是服务器使用尾随逗号返回数据,例如:
[1, 2, 3, ]
在IE中,此数组将被解释为长度为4,而在符合标准的浏览器中,它的长度为3。
答案 1 :(得分:0)
[Methods]
是调试器显示的一个单独节点,用于将函数与其他值分开
它实际上并不存在于对象中。
如果数组有三个名为0
,1
和2
的项目,则其length
将为3
。