【问题标题】:Merging two variable names together in javascript在javascript中将两个变量名合并在一起
【发布时间】:2014-03-31 19:35:14
【问题描述】:

我正在尝试创建一个循环,在其中为 Google 地图创建多个标记。我希望将这些标记命名为 marker+int。我发现我无法合并 2 个变量名,所以我需要另一种方法来做到这一点。谁能帮我吗?我没有要循环的数组...

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
    }); 
}

【问题讨论】:

标签: javascript google-maps


【解决方案1】:

如何定义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
    }); 
}

你可以从markerarray简单地输出结果

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 变量,因为您已经有计数器,它由循环内的i 变量表示

【讨论】:

  • 你的答案是构造一个数组。但我还必须循环遍历它才能真正让这些标记出现在 gmap 中,对吧?
  • @FrankKluytmans 由于从数组中检索信息是的,你必须为它做另一个循环
  • @FrankKluytmans:我建议阅读MDN JavaScript Guide about arrays 以了解如何使用它们。
  • 我认为我非常了解数组。循环不是问题。但是如何输出循环中的所有标记?我不想记录它们,但实际上将它们显示在地图上......
【解决方案2】:

你是一个对象或一个数组

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";
}

【讨论】:

    【解决方案3】:

    也许您可以将所有制造商放在一个对象中。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 2021-10-19
      • 2014-08-17
      • 1970-01-01
      • 2017-08-05
      • 2019-11-15
      相关资源
      最近更新 更多