我正在尝试在循环中定义变量。我将删除代码,然后尝试解释一下:
for (var k=0; k<nodes.length; k++){
this[node+k] = new google.maps.Marker({
position: new google.maps.LatLng(array1[k], array2[k]),
map: map,
title: node[k],
icon: "some image file"
});
}
我想创建一个变量列表,这些变量将命名为已定义的数组(名称数组在上面的代码中称为节点)。所以在这个循环中,我想定义一个新变量“this [node + k]”来创建一个新的google.maps.marker变量。
目的是在自定义谷歌地图上制作一堆带有弹出窗口的标记,用于我正在尝试编写的一些管理软件。
我确信必须有一些方法可以做到这一点,因为我看到了在循环中定义变量的其他代码(我不能再找到哪个...... :()。但是,定义的变量的名称在循环中没有从另一个数组(如我的)。
我不想创建var1,var2,var3。我看到了怎么做。我想使用数组中的名称创建这些变量。
如果问题仍然不明确,我表示歉意,但感谢目前为止的帮助。我有一种感觉,这可能是谷歌地图代码混淆了这种情况。所以这是定义谷歌地图标记变量的原始方法:
var NAME1= new google.maps.Marker({
position: new google.maps.LatLng(29.70600, -95.28159), // coordinates
map: map,
title:"NAME1", // marker title
icon: "http://127.0.0.1/public_html/tower.gif" // icon
});
我现在的代码只是重复这段代码20多次来定义所有不同的变量。我想尝试将这些全部放入for循环中,并使用数组中的名称定义变量。
答案 0 :(得分:4)
在for loop中,您应该使用分号而不是逗号:
for (var k=0; k<nodes.length; k++){
// ...
}
答案 1 :(得分:1)
我不确定你要做什么,但你可以试试:
var names = ["name1", "name2"];
var markers = new Array();
for (var k=0; k<names.length; k++){
markers[k] = new google.maps.Marker({
position: new google.maps.LatLng(array1[k], array2[k]),
map: map,
title: names[k],
icon: "some image file"
});
}
答案 2 :(得分:0)
如果你在for循环之外创建一个变量,然后将你的新创作放入其中,你可以按照你的描述进行操作。像这样:
var maps = [];
for (var k=0; k<nodes.length; k++){
maps[k] = new google.maps.Marker({
position: new google.maps.LatLng(array1[k], array2[k]),
map: map,
title: node[k],
icon: "some image file"
});
}
使用maps数组上的数字键来跟踪项目。您可以将地图设为对象,并使用文本键,如果这对您的方案更好。