无法设置2D数组的属性“0”

任何人都可以告诉我为什么我收到以下代码的错误:

未捕获的TypeError:无法设置未定义的属性“0”

var vehicles = []; $.get('../poll/index.php?data=vehicles', function(data) { var rows = $(data).find('row').length; for (var i = 0; i < rows; i++) { vehicles[i][0] = $(data).find('row').eq(i).find('stage').text(); vehicles[i][1] = $(data).find('row').eq(i).find('direction').text(); vehicles[i][2] = $(data).find('row').eq(i).find('stageName').text(); vehicles[i][3] = $(data).find('row').eq(i).find('atco').text(); vehicles[i][4] = $(data).find('row').eq(i).find('service').text(); vehicles[i][5] = $(data).find('row').eq(i).find('journey').text(); vehicles[i][6] = $(data).find('row').eq(i).find('fleet').text(); vehicles[i][7] = $(data).find('row').eq(i).find('longitude').text(); vehicles[i][8] = $(data).find('row').eq(i).find('latitude').text(); vehicles[i][9] = $(data).find('row').eq(i).find('operator').text(); vehicles[i][10] = $(data).find('row').eq(i).find('position').text(); } }, 'xml'); 

您需要定义每个子数组,例如

 var vehicles = []; // parent array; var vehicles[0] = []; // first child array; 

所以你需要

 for (var i = 0; i < rows; i++) { var vehicles[i] = []; ... rest of code here ... } 

vehicles[i]没有分配给它的价值。

添加一行:

 vehicles[i] = []; 

在循环的顶部。