에 대한 인덱스를 찾습니다IE8 열거 배열 내가 배열을 선언 한 프로토 타입
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 또는 에지 모드에서 IE11을 실행하면 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" />
를 제거하고, 그것을 작동합니다.
도
- Stopping enumeration in JavaScript when using prototype
- Are trailing commas in arrays and objects part of the spec?
나는 그 결과를 얻지 못하는 것 같습니다 ... – qwertynl
어떻게 배열 요소를 얻었습니까? 당신이 employeeBanks [a]와 같은 것을 사용하고 있다면, 아마도 "prototype"속성에 접근 할 수 있을지 모르겠다. 그것은 숫자가 아닙니다. –
@FelixKling 나는 어떻게 보이지 않는다. IE8 문서 모드로 IE를 넣어보십시오. 수락 된 답변 주석에 실패한 jsFiddle 샘플을 추가했습니다. –