检查数组键是否等于某个值JavaScript

时间:2015-12-05 12:39:12

标签: javascript arrays if-statement

我有这个数组:

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:意外的令牌[。

我该怎么做?

1 个答案:

答案 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'
});