簡體   English   中英

為什么我的switch語句不匹配任何情況?

[英]Why doesn't my switch statement match any case?

當我使用switch語句時沒有一個案例匹配'prefix'。 但如果我用if-else替換switch語句,一切正常。 為什么?

謝謝

//UPDATED
//el is DIV element. For example el.id='mph_4';
var prefix = /^[a-z]+/.exec(id);
//------------- SWTICH -------------------------
switch (prefix) {
    case 'mph':
        return 1;
    case 'ph':
        return 2;
    case 'mh':
        return 3;
}
//---------------IF-ELSE------------------------
 if (prefix == 'mph') {
        return 1;
    }
    else if (prefix == 'ph') {
        return 2;
    }
    else if (prefix == 'mh') {
        return 3;
    }

RegExp.exec()返回一個數組。 所以prefix實際上是數組而不是字符串。 如果您確定exec返回單個字符串,則可以將switch語句更改為:

switch (prefix[0]) {
    case 'mph':
        return 1;
    case 'ph':
        return 2;
    case 'mh':
        return 3;
}

記得使用switch-case- break

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM