Vue 用js for循环动态生成变量名并赋值

想要的效果:

var marker1 = new BMap.Marker(new BMap.Point(res.data.data[0].gpsX, res.data.data[0].gpsY),{
    
    icon:myIcon});
var marker2 = new BMap.Marker(new BMap.Point(res.data.data[1].gpsX, res.data.data[1].gpsY),{
    
    icon:myIcon2});
var marker3 = new BMap.Marker(new BMap.Point(res.data.data[2].gpsX, res.data.data[2].gpsY),{
    
    icon:myIcon2});
var marker4 = new BMap.Marker(new BMap.Point(res.data.data[3].gpsX, res.data.data[3].gpsY),{
    
    icon:myIcon});
       
map.addOverlay(marker1);
map.addOverlay(marker2);
map.addOverlay(marker3);
map.addOverlay(marker4);

for循环实现:

this.$axios({
    
    
        url: "/api/device/jiankongDevice/getJiankongDeviceAllList",
        method: "get",
        headers: {
    
    
          "X-Requested-With": "XMLHttpRequest",
          platform: 0,
          token: localStorage.getItem("token"),
        },
        params: {
    
    },
      }).then((res) => {
    
    
        console.log(res);
        for(var i in res.data.data){
    
    
          var marker = 'marker'+i
          marker=new BMap.Marker(new BMap.Point(res.data.data[i].gpsX, res.data.data[i].gpsY),{
    
    icon:myIcon});
          map.addOverlay(marker);
        } 

如果想给生成的每个变量添加事件,则需要用到事件监听addEventListener(),并且需要用闭包,具体可以看我下篇文章

猜你喜欢

转载自blog.csdn.net/GongWei_/article/details/112305493