2016-10-05 3 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 += ''; 

이 문자열로 인수를 변환해야하고 당신이 당신의 결과를 얻을해야

희망이 도움이됩니다!

관련 문제