我有一个像
这样的javascript数组对象{arr = {"0":{"name":"henry","role":"user"},"1":{"name":"mark","role":"admin"}}
我有一个html从我的服务器请求这个数组(通过在我的服务器函数中包含一个带有url的脚本标记来提供这个数组}
问题在于,当我在firefox中运行我的HTML文件时,它很容易检测到这个数组并使用它进行进一步处理但是在IE上,当我尝试访问数组的元素时,它会引发异常(对象是null或undefined)。
任何想法为什么元素检测可能在IE中失败。
我们如何在IE中找出数组对象的属性?
答案 0 :(得分:1)
这不是一个真正的数组,只是一个带有数字属性的对象文字,你应该使用for ... in语句迭代它:
var arr = {"0":{"name":"henry","role":"user"},
"1":{"name":"mark","role":"admin"}};
for (var key in arr) {
if (arr.hasOwnProperty(key)) {
// value = arr[key];
}
}
但我认为你应该简单地返回一个真正的数组:
var arr = [{"name":"henry","role":"user"},
{"name":"mark","role":"admin"}];