我想写一个switch语句,如果它们都是真的,将会经历前2个案例。如果没有,只匹配真实的那个。
var vehicle = {main: false, detail: false};
switch(true) {
case (states.data.currentState.indexOf('main.vehicle') !== -1):
vehicle.main = true;
break;
case (states.data.currentState === 'main.vehicle.detail):
vehicle.detail = true;
break;
}
我的问题是,在第一次中断后,switch语句结束并且没有进入案例2.但是如果我从第一种情况中删除break,它将跳转到案例2并应用vm.vehicle.detail = true;即使案件条件不符合。
因此,如果我在第一种情况下删除break,我的对象无论如何都会如此
{ main: true, detail: true }
如果我不这样,它会是这样的
{ main: true, detail: false }
如何在单次运行开关时满足这两个条件?
为什么不把比较作为对象的值?
var vehicle = {
main: states.data.currentState.indexOf('main.vehicle') !== -1,
detail: states.data.currentState === main.vehicle.detail
};
ES6
var vehicle = {
main: states.data.currentState.includes('main.vehicle'),
detail: states.data.currentState === main.vehicle.detail
};