Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
For循环中的Javascript If-Else语句_Javascript_Arrays_Google Maps_Google Maps Api 3 - Fatal编程技术网

For循环中的Javascript If-Else语句

For循环中的Javascript If-Else语句,javascript,arrays,google-maps,google-maps-api-3,Javascript,Arrays,Google Maps,Google Maps Api 3,我正在尝试使用JavaScript和GoogleMapsAPI在地图上绘制一些标记;我有一个包含键值对的大型对象数组,如下所示: xyz: [ { name: 'abc', loc: { lat: 0.000000, lng: 0.000000 } }, ... , ... ] var xyzMarkerIcon = {}; for (i in xyz) { if (xyz[i].name = 'abc') { xyzMarkerIcon = xyzMarkerIcon1 }

我正在尝试使用JavaScript和GoogleMapsAPI在地图上绘制一些标记;我有一个包含键值对的大型对象数组,如下所示:

xyz: [ { name: 'abc', loc: { lat: 0.000000, lng: 0.000000 } }, ... , ... ]
var xyzMarkerIcon = {};
for (i in xyz) {

  if (xyz[i].name = 'abc') {
    xyzMarkerIcon = xyzMarkerIcon1
  }
  else {
    xyzMarkerIcon = xyzMarkerIcon2
  }

  xyzMarkerArray[i] = new google.maps.Marker({
    map: map,
    position: xyz[i].loc,
    icon: xyzMarkerIcon,
    shape: xyzMarkerShape,
  });
}
我有一个For循环,循环遍历这个数组,并在xyz.loc处为数组中的每个对象绘制一个标记,如下所示。现在,我试图根据xyz.name属性更改每个标记使用的图标

我定义了两个不同的自定义标记图标及其关联的形状xyzMarkerIcon1、xyzMarkerIcon2和xyzMarkerShape,并尝试使用If-Else语句切换使用哪一个,如下所示:

xyz: [ { name: 'abc', loc: { lat: 0.000000, lng: 0.000000 } }, ... , ... ]
var xyzMarkerIcon = {};
for (i in xyz) {

  if (xyz[i].name = 'abc') {
    xyzMarkerIcon = xyzMarkerIcon1
  }
  else {
    xyzMarkerIcon = xyzMarkerIcon2
  }

  xyzMarkerArray[i] = new google.maps.Marker({
    map: map,
    position: xyz[i].loc,
    icon: xyzMarkerIcon,
    shape: xyzMarkerShape,
  });
}
For循环工作得很好,但是在第一次迭代之后,If-Else语句似乎被忽略了;阵列中的所有对象都已成功打印,但都使用xyzMarkerIcon的第一个实例


我觉得这应该是一个足够简单的问题,但我就是想不出来!谢谢你的帮助

您忘记了==“abc”

var xyzMarkerIcon = {};
for (i in xyz) {

  if (xyz[i].name == 'abc') {
    xyzMarkerIcon = xyzMarkerIcon1
  }
  else {
    xyzMarkerIcon = xyzMarkerIcon2
  }

  xyzMarkerArray[i] = new google.maps.Marker({
    map: map,
    position: xyz[i].loc,
    icon: xyzMarkerIcon,
    shape: xyzMarkerShape,
  });
}

这是因为您使用的是xyz[0]。名称是abc,然后是other?这就是为什么它被忽视而不是被完全忽视的原因?xyz[i]。名称='abc'这是赋值而不是比较,替换为==。如果字符串始终为真,则第一个图标始终为Usedah yes!我以为我错过了一些简单的事情!非常感谢。