我有这个数组:
var arr = [
['First', 'lorem ipsum'],
['Second', 'dolor sit amet'],
];
我希望arr[0]
等于第一次执行操作1,否则执行操作2.
我用过:
for (var i = 0; i < markers.length; i++) {
var arr = markers[i];
var marker = new google.maps.Marker({
map: map,
if(arr[0] == 'Lorem') {
icon: 'http://imgur.com/1.png',
}
else {
icon: 'http://imgur.com/2.png',
}
});
var contentString = '';
google.maps.event.addListener(marker, "click", function () {
infowindow.setContent(this.html);
infowindow.open(map, this);
});
}
但我得到未捕获的SyntaxError:意外的令牌[。
我该怎么做?
答案 0 :(得分:1)
您无法在对象文字中使用if
语句。代码有几个语法错误。
您可以定义一个引用该对象的变量,并有条件地将该属性添加到该对象中:
var obj = {
map: map
};
if ( condition ) {
obj.icon = 'http://imgur.com/1.png';
} else {
obj.icon = 'http://imgur.com/2.png';
}
var marker = new google.maps.Marker(obj);
另一种选择是使用ternary operator:
var marker = new google.maps.Marker({
map: map,
icon: arr[0] == 'Lorem' ? 'http://imgur.com/1.png' : 'http://imgur.com/2.png'
});