For循环中未定义数组

时间:2013-10-29 14:07:24

标签: javascript arrays

我收到以下错误(这对我没有任何意义!!):

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);
                  }
});

2 个答案:

答案 0 :(得分:4)

data.length应为jImages.length

data.length是JSON字符串的长度,远远大于jImages数组的长度。所以你超越了数组的末尾,导致尝试访问未定义的元素。

答案 1 :(得分:2)

data是一个字符串(JSON字符串),jImages是一个二维数组。通常,data.length(字符串字符编号)与jImages(数组中的元素数)不同。

你应该做点什么:

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