我有一個功能,但我想知道是否有更好的方法來做到這一點。寫回退選擇器的更好方法是什麼?
我有5種尺寸,我試圖獲得當前尺寸的縮放級別。如果當前尺寸未指定尺寸,我想檢查其他較小尺寸以查看是否有指定要使用的尺寸。
也就是說,如果沒有指定XL變焦,檢查是有一個LG使用,如果沒有,檢查是否有一個MD大小等
目前,我有一個很大的switch
有一堆if
/else
聲明。任何更乾淨的方式來做到這一點,我錯過了?
self.updateZoom = function() {
var defaultZoomLevel = 8;
switch(self.getSize()) {
case 'xs':
if (self.xsZoom) {
self.zoom = self.xsZoom;
} else {
self.zoom = defaultZoomLevel;
}
break;
case 'sm':
if (self.smZoom) {
self.zoom = self.smZoom;
} else if (self.xsZoom) {
self.zoom = self.xsZoom;
} else {
self.zoom = defaultZoomLevel;
}
break;
case 'md':
if (self.mdZoom) {
self.zoom = self.mdZoom;
} else if (self.smZoom) {
self.zoom = self.smZoom;
} else if (self.xsZoom) {
self.zoom = self.xsZoom;
} else {
self.zoom = defaultZoomLevel;
}
break;
case 'lg':
if (self.lgZoom) {
self.zoom = self.lgZoom;
} else if (self.mdZoom) {
self.zoom = self.mdZoom;
} else if (self.smZoom) {
self.zoom = self.smZoom;
} else if (self.xsZoom) {
self.zoom = self.xsZoom;
} else {
self.zoom = defaultZoomLevel;
}
break;
case 'xl':
if (self.xlZoom) {
self.zoom = self.xlZoom;
} else if (self.lgZoom) {
self.zoom = self.lgZoom;
} else if (self.mdZoom) {
self.zoom = self.mdZoom;
} else if (self.smZoom) {
self.zoom = self.smZoom;
} else if (self.xsZoom) {
self.zoom = self.xsZoom;
} else {
self.zoom = defaultZoomLevel;
}
break;
default:
self.zoom = defaultZoomLevel;
}
self.zoom = parseInt(self.zoom);
}
而不是開關,你可以只使用case xl。就我所知,這會導致與開關盒相同的縮放級別。 –
'self.zoom = self.xsZoom || defaultZoomLevel;' – dandavis