javascript - IE8枚举数组找到原型(prototype)的索引

标签 javascript arrays internet-explorer-8 ie8-browser-mode

我已经声明了一个数组:

var employeeBanks = 
[
    { validFromDate: '2013-01-01',    validToDate: '2013-12-31' },
    { validFromDate: '2013-01-01',    validToDate: '2013-12-31' },
    { validFromDate: '2013-01-01',    validToDate: '2013-12-31' },
    { validFromDate: '2013-02-01',    validToDate: '2014-01-31' },
];

当尝试迭代数组的每个成员时:

for (var a = 0; a < employeeBanks.length; a++)
{
   ...
}

我收到错误,因为我的数组中有一个额外的项目:

employeeBanks
   [0] = [object]
   [1] = [object]
   [2] = [object]
   [3] = [object]
   [prototype] = [object]

数组中的第五个元素无法识别。所以我得到一个错误。在 IE9、IE10 或 Edge 模式下运行 IE11,prototype 成员不会出现(或者在迭代数组时不会出现)。

仅迭代数组成员的推荐技术是什么?未经我的许可,数组中是否还有其他预期的内容可能出现?

奖励屏幕截图:

enter image description here

完整来源:

<!doctype html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=8" />
<script type="text/javascript">
    var employeeBanks = 
        [
            { validFromDate: '2013-01-01',    validToDate: '2013-12-31' },
            { validFromDate: '2013-01-01',    validToDate: '2013-12-31' },
            { validFromDate: '2013-01-01',    validToDate: '2013-12-31' },
            { validFromDate: '2013-02-01',    validToDate: '2014-01-31' },
        ];
</script>
<body>
<p id="lblFoo">

<script type="text/javascript">
    for (var a = 0; a < employeeBanks.length; a++)
    {
       document.getElementById("lblFoo").innerText = "Test failed";
       document.getElementById("lblFoo").innerText = employeeBanks[a].validToDate;
    }
   document.getElementById("lblFoo").innerText = "Test complete";
</script>
</body>
</html>

删除 <meta http-equiv="X-UA-Compatible" content="IE=8" /> ,它就可以工作了。

另请参阅

最佳答案

您的额外元素是由于额外的逗号造成的。删除结束 ] 之前的逗号,您的数组中将拥有正确数量的元素。

var employeeBanks = 
[
    { validFromDate: '2013-01-01',    validToDate: '2013-12-31' },
    { validFromDate: '2013-01-01',    validToDate: '2013-12-31' },
    { validFromDate: '2013-01-01',    validToDate: '2013-12-31' },
    { validFromDate: '2013-02-01',    validToDate: '2014-01-31' }
];

关于javascript - IE8枚举数组找到原型(prototype)的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20127373/

相关文章:

ruby - 将数组中除选定单词外的每个单词大写

javascript - 需要从数组中删除字符串

html - CSS 不透明背景 IE6 - IE8

windows-7 - 跨操作系统 POST 转换为 GET

javascript - 求穿过原点的直线所成的 Angular

javascript - 如何在没有 post 键的情况下将新数据添加到 firebase 中?

javascript - 三元运算符 - 3 个条件

javascript - 轮询在 React JS mixin 中不起作用

java - 从另一个数组创建一个随机字符串数组。

jquery - 为什么 Jquery .attr() 对 IE 7/8 中的我的对象不起作用?