我有以下一段代碼。出於某種原因,我不想執行的案例陳述(案例'2'的第二個案例)正在執行,除了正確的案例(案例'4')之外。在網上閱讀後,似乎大多數人能夠通過添加「break」語句來解決類似的問題。但它不適合我。請在下面advise.Output是從我的瀏覽器開關語句在JavaScript中無法正常工作
var chk = '4'
switch (chk) {
case '4':
var locations = [
["936001_STURGEON_BAY_MEYER", 44.8358, -87.3305, "LRA", 1],
["936087_SHADOW_LAKE", 45.2183, -88.5981, "LRA", 2],
["936136_PIG", 44.5925, -88.0808, "OMS", 3],
["936136_PIG", 44.5925, -88.0808, "OMS", 4]
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: new google.maps.LatLng(locations[0][1], locations[0][2]),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow({
maxWidth: 400000
});
var locations_all_cells1 = locations;
var marker, i;
for (i = 0; i < locations_all_cells1.length; i++) {
var type1 = locations_all_cells1[i][3];
switch (type1) {
case "OMS":
marker1 = new google.maps.Marker({
position: new google.maps.LatLng(locations_all_cells1[i][1], locations_all_cells1[i][2]),
map: map,
icon: 'http://maps.google.com/mapfiles/ms/icons/green-dot.png'
});
google.maps.event.addListener(marker1, 'click', (function(marker1, i) {
return function() {
infowindow.setContent(locations_all_cells1[i][0]);
infowindow.open(map, marker1);
}
})(marker1, i));
break;
case "LRA":
marker2 = new google.maps.Marker({
position: new google.maps.LatLng(locations_all_cells1[i][1], locations_all_cells1[i][2]),
map: map,
icon: 'http://maps.google.com/mapfiles/ms/icons/red-dot.png'
});
google.maps.event.addListener(marker2, 'click', (function(marker2, i) {
return function() {
infowindow.setContent(locations_all_cells1[i][0]);
infowindow.open(map, marker2);
}
})(marker2, i));
break;
case "UPSAVE":
marker3 = new google.maps.Marker({
position: new google.maps.LatLng(locations_all_cells1[i][1], locations_all_cells1[i][2]),
map: map,
icon: 'http://maps.google.com/mapfiles/ms/icons/yellow-dot.png'
});
google.maps.event.addListener(marker3, 'click', (function(marker3, i) {
return function() {
infowindow.setContent(locations_all_cells1[i][0]);
infowindow.open(map, marker3);
}
})(marker3, i));
}
}
break;
case '2':
var locations = [
["936001_STURGEON_BAY_MEYER", 44.8358, -87.3305, "LRA", 1],
["936087_SHADOW_LAKE", 45.2183, -88.5981, "LRA", 2],
["936136_PIG", 44.5925, -88.0808, "OMS", 3],
["936136_PIG", 44.5925, -88.0808, "OMS", 4]
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: new google.maps.LatLng(locations[0][1], locations[0][2]),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow({
maxWidth: 400000
});
var locations_all_cells = ;
var marker, i;
for (i = 0; i < locations_all_cells.length; i++) {
var type1 = locations_all_cells[i][3];
}
break;
default:
text = "Looking forward to the Weekend";
}
console.log(text);
錯誤信息
您還沒有定義'type1'!而且我確定,這不會進入第2種情況......或者如果確實如此,請將'chk ='4';'作爲字符串。 –
在上面的代碼中,只有默認的分支會被執行(既不是case'2'也不是case'4'),因爲你的例子都不匹配'4'。請注意'4!=='4''。 – Paulpro
@Paulpro'switch'是否執行嚴格的檢查? –