切换语句以匹配几种情况

问题描述 投票:-1回答:1

我想写一个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 }

如何在单次运行开关时满足这两个条件?

javascript angularjs switch-statement
1个回答
3
投票

为什么不把比较作为对象的值?

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
    };
© www.soinside.com 2019 - 2024. All rights reserved.