1

私は配列を宣言しました:

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]

そして、配列の 5 番目の要素は認識できません。だから私はエラーが発生します。IE11 を IE9、IE10、またはエッジ モードで実行すると、prototypeメンバーが表示されません (または、配列の反復時に表示されません)。

配列のメンバーのみを反復するための推奨手法は何ですか? 私の許可なしに配列に表示される可能性がある他の期待されるものはありますか?

ボーナスのスクリーンショット:

ここに画像の説明を入力

完全なソース:

<!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" />と、機能します。

こちらもご覧ください

4

1 に答える 1

1

余分な要素は、余分なコンマが原因です。閉じる前にコンマを削除する]と、配列に正しい数の要素が含まれます。

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' }
];
于 2013-11-21T17:07:23.350 に答える