2017-05-08 5 views
-1
function isVowelR(ch,pattern){ 
var ch = "a"; 
var pattern =/a|e|i|o|u|y/i ; 
} 
if(pattern.test(ch)){ 
return true;   
} 
else{return false} 

私は違法があったというエラーを得ましたreturnステートメントでは、if elseステートメントで関数として保持する必要もあります。持つ問題chが母音である場合

+1

あなたの 'if'文の前に機能を閉じました。 'if/else'ブロックは関数の中に*置かなければなりません。一貫してコードとインデントを適切にフォーマットすれば、すぐにこのような問題を見ることができます。 (また、あなたの関数は受け取ったパラメータを無視していて、同じ変数を内部的に再定義するだけです)。 – David

答えて

0

機能をあまりにも早く終了しました。このエラーは、関数内に含まれていなかった文がreturnだったためです。以下の固定コードを参照してください。ここでは、中括弧をif/elseステートメントの後に移動しています。

function isVowelR(ch, pattern) { 
    var ch = "a"; 
    var pattern = /a|e|i|o|u|y/i; 

    if (pattern.test(ch)) { 
     return true;   
    } 
    else { 
     return false; 
    } 
} 

EDIT:他の人が指摘したように、パラメータは無視され、上書きされています。私は、これはより便利機能である疑いがある:

function isVowelR(ch) { 
    var pattern = /a|e|i|o|u|y/i; 

    if (pattern.test(ch)) { 
     return true;   
    } 
    else { 
     return false; 
    } 
} 
+0

なぜ関数の引数を上書きしていますか?彼らは私の外にいるべきだと思う 'ch、pattern' –

+0

私のGEは私を助けようとしていて何らかの理由でそれをするように言った –

0
var ch = "a"; 
    var pattern =/a|e|i|o|u|y/i ; 

    isVoweIR(ch, pattern);  

    function isVowelR(ch,pattern){ 
     if(pattern.test(ch)){ 
     return true;   
    } 
     else{return false} 
    }