访问二维javascript数组

时间:2018-04-06 16:55:41

标签: javascript arrays google-maps

我有一个二维javascript数组,需要从包含街道地址的一维数组的条目中获取它的第一个列数据([j][0])

组合字符串取自PHP在前一个函数中插入的DOM。然后将字符串拆分为一维数组,其中包含我想在Google地图上显示的所有街道地址。名为“markers”的二维数组将由Google Maps javascript API使用。

该数组包含与街道地址和三列相同的行数:第一个用于街道地址,第二个用于纬度,第三个用于经度。

所以这是我的问题:由于谷歌地图没有在地图上显示任何地图标记,我试图通过在for循环中添加alert("markers[j][0]: " + markers[j][0]);来调试代码,以便查看循环的每一行(每个街道地址)。

第一个条目(markers[0][0])正确显示,但第二个条目(markers[1][0]根本没有提醒浏览器。我怀疑错误/问题是在循环中的alert("j: " + j);之后,因为在此循环之后其余的javascript程序根本没有运行。 (在这个循环后我有一些警告和一些代码来渲染地图,但它没有运行)。

这是我的代码,其中包含错误。请帮助,因为我现在试图解决这个问题两天了,这让我疯了。

if(document.getElementById('address-target'))
{
 var div = document.getElementById("address-target");

 LocationAddressesCombined = div.textContent;

 alert("Location addresses combined: " + LocationAddressesCombined);
}


var LocationAddresses = LocationAddressesCombined.split(',');

alert("LocationAddresses[0]: " + LocationAddresses[0]);
alert("LocationAddresses[1]: " + LocationAddresses[1]);



var MarkersColumns = ["",0,0];
var markers  = [[MarkersColumns]];


alert("LocationAdresses.length" + LocationAddresses.length);

var j;

//Loop through the "markers" array entries and assign to them the location addresses.
for (j=0; j < LocationAddresses.length; j++)
{
  alert("j: " + j);

  markers[j][0] = LocationAddresses[j];

  alert("markers[j][0]: " + markers[j][0]);

}

1 个答案:

答案 0 :(得分:0)

在将某些内容放入其中的第0个元素之前,您的markers[j]必须是一个数组。试试这个:

markers[j] = [];
markers[j][0] = LocationAddresses[j];

顺便说一下,我不确定你打算用这些方法完成什么:

var MarkersColumns = ["",0,0];
var markers  = [[MarkersColumns]];

...但实际上设置了一个三维数组,markers[0][0][0]""markers[0][0][1]0markers[0][0][2]为{{ 1}}。