我有一个功能,但我想知道是否有更好的方法来做到这一点。写回退选择器的更好方法是什么?
我有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