2014-03-31 39 views
0

我正在尝试创建一个循环,在该循环中为Google地图创建多个标记。我希望这些标记被命名为marker + int。我无法合并2个变量名称,因此我需要另一种方法来完成此操作。谁能帮我吗?我没有一个数组通过循环......在javascript中合并两个变量名称

var counter = 0; 

for (var i = 0; i < localStorage.length; i++){ 
    counter++; 
    var marker = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     icon: image, 
     shadow: shadow, 
     title: label 
    }); 
} 
+0

的可能重复[JavaScript的:动态创建变量循环(http://stackoverflow.com/questions/6645067/javascript-dynamically-creating-variables-for-loops) –

回答

3

怎么样来定义array和迭代虽然它喜欢:

var marker = []; 

for (var i = 0; i < localStorage.length; i++) { 
    marker[i] = new google.maps.Marker({ 
     position: myLatlng, 
     map: map, 
     icon: image, 
     shadow: shadow, 
     title: label 
    }); 
} 

可以输出结果从 array简单的就像

for (var j = 0; j < marker.length; j++) { // output all the information from marker array 
    console.log(marker[j].position); 
    console.log(marker[j].map); 
    console.log(marker[j].icon); 
    console.log(marker[j].shadow); 
    console.log(marker[j].title); 
} 

注意:counter变量不需要,因为你读取y具有这是由i变量循环

+0

你的答案是构建一个数组。但是我也必须循环才能让这些标记出现在gmaps中,对吗? –

+0

@FrankKluytmans由于从数组中检索信息是的,你必须为它创建另一个循环 – tnanoba

+0

我将如何在for循环中输出标记? –

0

内代表计数器您的对象或数组

var markers = []; 
for (var i=0; i<10; i++) { 
    markers[i] = "Hello"; 
} 

如果你想有名称,而不是使用对象

var obj = {}; 
for (var i=0; i<10; i++) { 
    obj["marker" + i] = "Hello"; 
} 
0

也许你可以把所有制造商都放在一个对象中

var myObject = []; 
myObject.push(marker);