在 for 之后的 if 语句中使用对象项

Using object item in an if statement after for

本文关键字:对象 语句 for 之后 if      更新时间:2023-09-26

我正在创建一个这样的对象:

  markers[name] = {};
  markers[name].id = id;
  markers[name].lat = lati;
  markers[name].lng = longi;
  markers[name].state = state;
  markers[name].position = posi;
  markers[name].selected = false;

然后我有一个新函数,我想循环访问标记对象并更改标记图像 .selected已设置为 true。

这是我尝试过的:

function setMarkerImage() { 
        for (var key in markers) { 
           console.log("test 1: " + key + key.selected);
            if (key.selected === true)
          {
          console.log("test 2");        
             var newImage = new google.maps.MarkerImage('img/presence/' + state + '_sel.png');
             var marker = $("#dispatcher").gmap3({action: 'get', name:'marker', tag: key})
               if (marker){
               marker.setIcon(newImage);
               }
          }
        } 
} 

问题是我得到了

test 1: Vinceundefined 

在控制台中,我认为我无法使用密钥。像这样选择?

key不是

对象,所以它没有selected键。 尝试改为使用

console.log("test 1: " + key + markers[key]["selected"]);