2016-10-05 10 views
-1

文字列内の文字の等価性を評価し、3行が一致した場合にtrueを返す関数を記述しようとしています。 charAt()は、if文が常にelseブロックに移動するため、動作していないようです。charAt評価していません

function myFunction(num1) 
{ 
var checkNum1; 
    for (var i = 0; i < num1.length; i++) 
    { 
    if (num1.charAt(i) == num1.charAt(i+1) && num1.charAt(i) == num1.charAt(i+2)) 
    { 
    checkNum1 = true; 
    break; 
    } 
    } 
    if (checkNum1 == true) 
    { 
    return true; 
    } 

    else 
    { 
    return false; 
    } 
} 

最後の "if"ブロックをtrueに戻すにはどうすればよいですか?

+1

あなたはmyFunctionに何を渡しましたか? 'i + 1'にアクセスすることは正しくありません。 –

+0

文字列がmyFunctionなどに渡されます。 257986555213.私は一致する行に3つの数字がある(この例では5である)ことを特定しようとしています。 –

+0

実際にはtrueを返します –

答えて

1

あなたが提供したコードは、文字列で正常に動作します。myFunction( "257986555213")はtrueを返します。

ただし、charAtはStringメソッドであるため、myFunction(257986555213)は期待どおりにfalseを返します。

フェイルセーフのアプローチとして、あなたが最初にあなたの方法に次の行を追加してみてくださいすることができます

num1 += ''; 

これは、文字列にあなたの引数を変換する必要がありますし、あなたの結果を取得する必要があります。..

希望はそれを助けます!

関連する問題