2013-10-29 52 views
1

我得到以下錯誤(其中沒有任何意義,我!!):數組未定義在循環

TypeError: jImages[i] is undefined   

代碼:

$.ajax({ url: 'FilterByToestanden.php', 
     data: {aantal: $("#aantToestanden option:selected").text(), tekst: $('#bevat').val()}, 
     type: 'post', 
     success: function(data) { 
         var jImages = JSON.parse(data); 
         alert(jImages[0][0]); 
         var filteredImageList = new Array(); 
         for (var i=0, len = data.length; i< len; i++) 
         { 
         filteredImageList[i]=jImages[i][0]+jImages[i][1]; 
         } 
         alert(filteredImageList); 
        } 
}); 

回答

4

data.length應該是jImages.length

data.length是JSON字符串的長度,遠遠大於jImages數組的長度。所以你超越了數組的末尾,導致嘗試訪問未定義的元素。

+0

不知道爲什麼,否則它不會工作,但它的作品吧!謝謝 – Faarbhurtz

+0

如果你不瞭解其中的差異,你一定是完全不知情的,但我補充了一些解釋。 – Barmar

2

data是一個字符串(JSON字符串),jImages是一個2d數組。一般來說,data.length(字符串字符數)與jImages(數組內的元素數)不同。

,你應該這樣做:

for (var i=0, len = jImages.length; i< len; i++)