数组的Javascript数组->;数组[索引]未定义

数组的Javascript数组->;数组[索引]未定义,javascript,arrays,Javascript,Arrays,我从一个php文件生成了一些javascript。在生成的代码中,我创建了一个多维数组,然后填充它。第一个嵌套数组的填充没有问题,但第二个嵌套数组抛出一个TypeError:myArray[idx]未定义 下面是一段代码片段: function initialize() { var arrayLabels = []; var arrayMarkers = []; var idx = 0;

我从一个php文件生成了一些javascript。在生成的代码中,我创建了一个多维数组,然后填充它。第一个嵌套数组的填充没有问题,但第二个嵌套数组抛出一个TypeError:myArray[idx]未定义

下面是一段代码片段:

function initialize() {
                var arrayLabels = [];
                var arrayMarkers = [];
                var idx = 0;
                arrayMarkers[idx] = [];
                var mapLatlng = new google.maps.LatLng(40.6029248937, 7.7861327300);
                var mapOptions = { center: mapLatlng,
                    zoom: 13, 
                    mapTypeId: google.maps.MapTypeId.SATELLITE };
                var map = new google.maps.Map(document.getElementById("karte"), mapOptions);
                var bounds = new google.maps.LatLngBounds();
                    arrayMarkers[idx]['breite'] = 44.4114053473682;
                    arrayMarkers[idx]['laenge'] = 8.91858100891113;
                    arrayMarkers[idx]['farbe'] = "http://new.kfb.localhost:8888/img/ico/button2_gruen.png";
                    arrayMarkers[idx]['hafen'] = "Ab/bis Genua";
                    arrayMarkers[idx]['link'] = "Karte&#44; Wetter und<br>Landausfl&uuml;ge f&uuml;r<br><a href='hafen.php?hafen=172'>Genua</a><br>Sa, 16.03.13";
                    idx++;
                    arrayMarkers[idx]['breite'] = 43.3449053146323;
函数初始化(){
var arrayLabels=[];
var arrayMarkers=[];
var-idx=0;
阵列标记器[idx]=[];
var mapLatlng=新的google.maps.LatLng(40.6029248937,7.7861327300);
var mapOptions={center:mapLatlng,
缩放:13,
mapTypeId:google.maps.mapTypeId.SATELLITE};
var map=new google.maps.map(document.getElementById(“karte”),mapOptions);
var bounds=new google.maps.LatLngBounds();
阵列标记[idx]['breite']=44.4114053473682;
阵列标记[idx]['laenge']=8.91858100891113;
阵列标记器[idx]['farbe']=”http://new.kfb.localhost:8888/img/ico/button2_gruen.png";
阵列标记器[idx]['hafen']=“Ab/bis Genua”;
arrayMarkers[idx]['link']=“卡丁车和卡丁车;更潮湿和
Landausflü;ge fü;r

南非,2013年3月16日”; idx++; 阵列标记[idx]['breite']=43.3449053146323;
错误在索引增加后的最后一行抛出。知道问题是什么吗

谢谢 MK

应该是

                    arrayMarkers[idx]['breite'] = 43.3449053146323;
idx++;
以便在所有操作完成后移动到下一个索引。否则,使用它们会将值递增到不存在的下一个索引

或者,如果它必须保持不变,那么您可以像这样初始化该值

idx++;
arrayMarkers[idx] = [];
arrayMarkers[idx]['breite'] = 43.3449053146323;
应该是

                    arrayMarkers[idx]['breite'] = 43.3449053146323;
idx++;
以便在所有操作完成后移动到下一个索引。否则,使用它们会将值递增到不存在的下一个索引

或者,如果它必须保持不变,那么您可以像这样初始化该值

idx++;
arrayMarkers[idx] = [];
arrayMarkers[idx]['breite'] = 43.3449053146323;

您正在递增idx,然后执行以下操作:

arrayMarkers[idx]['breite'] = 43.3449053146323;
您从未将任何对象放置在
数组标记器[idx]
,因此您最终尝试将属性添加到
未定义的
,这会导致错误

如果要在新索引处创建数组,请添加第二行,如下所示:

idx++;
arrayMarkers[idx] = []; // <=== Add this
arrayMarkers[idx]['breite'] = 43.3449053146323;

您正在递增idx,然后执行以下操作:

arrayMarkers[idx]['breite'] = 43.3449053146323;
您从未将任何对象放置在
数组标记器[idx]
,因此您最终尝试将属性添加到
未定义的
,这会导致错误

如果要在新索引处创建数组,请添加第二行,如下所示:

idx++;
arrayMarkers[idx] = []; // <=== Add this
arrayMarkers[idx]['breite'] = 43.3449053146323;

您需要执行另一个
arrayMarkers[idx]=[];
@mplungjan这只是一个示例。该数组称为arrayMarkers。我知道,但请使用示例中的数组名称来避免此操作confuse@RichardTowers你的意思是每次计数器递增时我都应该这样做?是的。请参阅@T.J Crowder的答案。你需要再做一次
数组标记[idx]=[];
@mplungjan这只是一个示例。该数组称为arrayMarkers。我知道,但请在示例中使用数组的名称,以避免出现错误confuse@RichardTowers你的意思是每次计数器递增时我都应该这样做?是的。请看@T.J Crowder的答案。