如何在javascript中的for循环中定义变量?

时间:2010-06-04 21:13:57

标签: javascript variables for-loop

我正在尝试在循环中定义变量。我将删除代码,然后尝试解释一下:

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循环中,并使用数组中的名称定义变量。

3 个答案:

答案 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数组上的数字键来跟踪项目。您可以将地图设为对象,并使用文本键,如果这对您的方案更好。