Javascript数组对象无法在IE中抛出“对象错误”

时间:2009-11-04 14:08:40

标签: javascript

我有一个像

这样的javascript数组对象
{arr = {"0":{"name":"henry","role":"user"},"1":{"name":"mark","role":"admin"}}

我有一个html从我的服务器请求这个数组(通过在我的服务器函数中包含一个带有url的脚本标记来提供这个数组}

问题在于,当我在firefox中运行我的HTML文件时,它很容易检测到这个数组并使用它进行进一步处理但是在IE上,当我尝试访问数组的元素时,它会引发异常(对象是null或undefined)。

任何想法为什么元素检测可能在IE中失败。

我们如何在IE中找出数组对象的属性?

1 个答案:

答案 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"}];