代码之家  ›  专栏  ›  技术社区  ›  user4839886

为什么有些值通过OR运算符,而其他值不通过?

  •  0
  • user4839886  · 技术社区  · 10 年前

    在我的代码中,我试图根据一个句子使用的字符来检查它是莫尔斯语还是英语。如果是莫尔斯,解码运行。如果是英语,Encode函数将运行。出于某种原因,某些单词如“朋友”和“鸡”会显示为莫尔斯,但“开始”和“斑马”则不会。为什么会发生这种情况?

    var input, output, startType;   
    var inputArray = [];            
    
    input = (prompt('Enter the word(s) or sentence(s) that you wish to convert.')).toLowerCase(); 
    
    function checkInput(input) {
        var i, il;
        for (i = 0, il = input.length; i < il; i++) {
            if (input.charAt(i) === ('a'||'b'||'c'||'d'||'e'||'f'||'g'||'h'||'i'||'j'||'k'||'l'||'m'||'n'||'o'||'p'||'q'||'r'||'s'||'t'||'u'||'v'||'w'||'x'||'y'||'z')) {
                startType = 'normal';
                break;
            }
            else {
                startType = 'morse';
                console.log(i);
            }
        }
    }
    checkInput(input);
    
    function Encode(input) {    
        var i, il;              
    
        for (i = 0, il = input.length; i < il; i++) {   
    
            if (input.charAt(i) === 'a') {              
                inputArray.push('.-');                  
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'b') {          
                inputArray.push('-...');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'c') {          
                inputArray.push('-.-.');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'd') {          
                inputArray.push('-..');                 
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'e') {          
                inputArray.push('.');                   
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'f') {          
                inputArray.push('..-.');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'g') {          
                inputArray.push('--.');                 
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'h') {          
                inputArray.push('....');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'i') {          
                inputArray.push('..');                  
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'j') {          
                inputArray.push('.---');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'k') {          
                inputArray.push('-.-');                 
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'l') {          
                inputArray.push('.-..');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'm') {          
                inputArray.push('--');                  
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'n') {          
                inputArray.push('-.');                  
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'o') {          
                inputArray.push('---');                 
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'p') {          
                inputArray.push('.--.');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'q') {          
                inputArray.push('--.-');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'r') {          
                inputArray.push('.-.');                 
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 's') {          
                inputArray.push('...');                 
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 't') {          
                inputArray.push('-');                   
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'u') {          
                inputArray.push('..-');                 
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'v') {          
                inputArray.push('...-');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'w') {          
                inputArray.push('.--');                 
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'x') {          
                inputArray.push('-..-');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'y') {          
                inputArray.push('-.--');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === 'z') {          
                inputArray.push('--..');                
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '0') {          
                inputArray.push('-----');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '1') {          
                inputArray.push('.----');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '2') {          
                inputArray.push('..---');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '3') {          
                inputArray.push('...--');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '4') {          
                inputArray.push('....-');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '5') {          
                inputArray.push('.....');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '6') {          
                inputArray.push('-....');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '7') {          
                inputArray.push('--...');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '8') {          
                inputArray.push('---..');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '9') {          
                inputArray.push('----.');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '.') {          
                inputArray.push('.-.-.-');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '?') {          
                inputArray.push('..--..');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '!') {          
                inputArray.push('-.-.--');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === ('(')) {        
                inputArray.push('-.--.');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === (')')) {        
                inputArray.push('-.--.-');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === ':') {          
                inputArray.push('---...');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '=') {          
                inputArray.push('-...-');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '-') {          
                inputArray.push('-....-');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '"') {          
                inputArray.push('.-..-.');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === ',') {          
                inputArray.push('--..--');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === "'") {          
                inputArray.push('.----.');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '/') {          
                inputArray.push('-..-.');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '&') {          
                inputArray.push('.-...');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === ';') {          
                inputArray.push('-.-.-');               
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '_') {          
                inputArray.push('..--.-');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === '@') {          
                inputArray.push('.--.-.');              
                if (input.charAt(i + 1) != ' ') {       
                    inputArray.push('/');               
                }                                       
            }                                           
    
            else if(input.charAt(i) === ' ') {          
                inputArray.push('//');                  
            }                                           
    
            else {                                      
                inputArray.push(input.charAt(i));       
            }                                           
    
        }   
    }       
    
    switch(startType) {
        case 'normal':
            Encode(input);
            output = inputArray.join('');   
            break;
        case 'morse':
            Decode(input);
            output = inputArray.join('');   
            break;
        default:
            output = 'Unrecognized language!';
            break;
    }
    
    console.log('Input was: ' + input);     
    console.log('Output is: ' + output);    
    console.log('Start type was: ' + startType);
    <script src="https://getfirebug.com/firebug-lite-debug.js"></script>
    2 回复  |  直到 10 年前
        1
  •  2
  •   Arun P Johny    10 年前

    因为 ('a'||'b'||'c'||'d'||'e'||'f'||'g'||'h'||'i'||'j'||'k'||'l'||'m'||'n'||'o'||'p'||'q'||'r'||'s'||'t'||'u'||'v'||'w'||'x'||'y'||'z') 总是会回来 a 所以如果你的字符串有一个 在其中,它将被视为 normal 类型

    如果您只想检查 input 只有字母表[ a-z ]字符,然后您可以使用

    function checkInput(input) {
      startType = /^[a-z]+$/.test(input) ? 'normal' : 'morse';
      console.log(startType)
    }
    
        2
  •  -1
  •   Tyress    10 年前

    你有没有试过去掉你的角色选择周围的括号?

      if (input.charAt(i) === 'a'||'b'||'c'||'d'||'e'||'f'||'g'||'h'||'i'||'j'||'k'||'l'||'m'||'n'||'o'||'p'||'q'||'r'||'s'||'t'||'u'||'v'||'w'||'x'||'y'||'z')
    

    请改用此选项:

    if (['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'].indexOf(input.charAt(i)) > -1)
    

    对不起,在这里误导了你!