나는 이것을 스스로 알아 내려고 노력했지만 아이디어가 없습니다... 추가 시간이 갈 것이지만 IE8에서만?
배열을 반복하여 목록 항목을 만드는 루프가 있습니다. 하지만 매번 EXTRA 루프를 수행하는 것으로 보이므로 정의되지 않은 요소를 가져옵니다. 예 : 내 배열은 앨범 [0]에서 멈추지 만 앞으로는 존재하지 않는 앨범 [1]을 위해 그것을 시도합니다. 이상하게 여긴다, 더 구체적으로 말하면, 필자의 필터 기능에서 텍스트를 가져온다.
어떻게 이런 일이 크롬에서 발생하지 않습니까? 이 배열을 통해 반복 할 때 for in
를 사용하지 마십시오 IE8 에 http://dl.dropbox.com/u/1261672/groovyBox2222/guts/artists.html?Hackers-vs-Slackers&
getPlaylist(function(songs) // pulls out songs matching artist
{
var albums = new Array();
for (obj in songs){
if (songs[obj]["artist"] == artist){
albums.push(songs[obj]["album"]);
}
albums = removeDuplicateElement(albums);
}
var albumname;
for (x in albums){ // creates LI of albums
albumname = '<li><a href="albums.html?'+escape(albums[x])+
'&'+escape(artist)+'">'+albums[x]+"</a></li>";
$('#albumlist').append(albumname);
}
};
for (노래가있는 상태의 객체)는 배열이 아닌 객체 (상태 아래의 답변)에서만 사용되어야합니다. JS의 for..in의 경우에 대한 좋은 설명입니다. http : //javascriptweblog.wordpress.com/2011/01/04/exploring-javascript-for-in-loops/ – scrappedcola