2015-01-25 8 views
0

코드 전쟁에서 배열 계산기를 쓰고 있습니다. 일련 번호와 연산자의 올바른 순서를 검사하는 함수가 있습니다. 내 함수 validSequence()는 가정 될 때 false를 반환하지 않습니다. 이 시험 배열의 오류 :NaN! == 'number'일 때 조건부 블록이 트리거되지 않습니다. Javascript

Test.assertSimilar(validSequence(['10', '+', '20', '*','3', '*']), false) 

이 validSequence이 선으로 잡았되지 않는()

if(typeof parseInt(arr[arr.length-1]) !== 'number'){ 
    return false; 
    } 

나는 이유를 알지 못한다. 예상대로 NaN을 제공하므로 블록에 들어가서 false를 반환하는 이유를 알 수 없습니다.

답변

2

NaN에 숫자 유형이 있기 때문입니다. 대신 isNaN을 사용하여 parseInt이 유리수를 반환하는지 검색하십시오.

if(isNaN(parseInt(arr[arr.length-1]))){ 
    return false; 
    } 

parseInt 항상 유리수를 반환하거나 NaN, 그래서 항상 'number' 될 것 같은 변수 유형을 확인 할 이유가 없습니다.

관련 문제