【问题标题】:Javascript switch case with array or strings带有数组或字符串的 Javascript 开关盒
【发布时间】:2019-07-02 13:25:43
【问题描述】:

此时我正在使用这样的开关盒:

case 'something':
  // Do something
break;

我想做的是有一个这样的数组或字符串:

case ['something', 'something too']:
  // Do something
break;

这样可以吗?

如果有怎么办?

【问题讨论】:

标签: javascript node.js typescript switch-statement


【解决方案1】:

 var aStr = ['hello','something too','something'];
 for (var i = 0; i < aStr.length; i++){
   var supp = aStr[i];
   switch (supp) {
      case 'hello':
      case 'something': 
      case 'something too':
        // Do something
        console.log('Works!')
      break;
      default:
      break;
    }
  }

你可以这样做。

【讨论】:

    【解决方案2】:

    用switch构造不行,用if代替

    if(array.includes('something' &&'something too')){
       return 'someData';
    }
    if(array.includes('something else')){
       return 'otherData';
    }
    

    【讨论】:

    • includes('something' &amp;&amp;'something too') 真的不太可能做你想做的事……
    【解决方案3】:

    这应该可行。

    var arr = ['a', 'b'];
    
    switch (arr.toString()) {
        case arr.toString():
            console.log('ok');
    }
    

    【讨论】:

      【解决方案4】:

      试试这个

       var my_array = ["A", "B", "C"];
           for(var i = 0; i<my_array.length;i++){
           switch(my_array[i]){
           case "A":
           console.log("It's A!");
           break;
           case "B":
           console.log("It's B!");
           break;
           case "C":
           console.log("It's C!");
           break;
           }
           }

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-10
        • 1970-01-01
        • 1970-01-01
        • 2020-05-31
        • 1970-01-01
        • 2011-05-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多