문제

다음 두 기능이 있습니다 ...

function splitTitleString(titleText)
{   
    var titleText = titleText;
    var temp = new Array();
    temp = titleText.split(' - ');
    var now = new Date().getTime();
    var warningExpResp = 7200000;
    var expRespDateTimeTicks = 0;
    var slaDateTimeTicks = 0; 

    if(temp[0].length > 0)
    {
    slaDateTimeTicks = getTicks(temp[0]);
    }

    if(temp[1].length > 0)
    {
        expRespDateTimeTicks = getTicks(temp[1]);
    }

    var returnTicksArray = new Array(slaDateTimeTicks,expRespDateTimeTicks);

    return returnTicksArray;
}

그리고...

function  warning(titleText, serverDateTime, warningLengthMins, warningType)
{
    var warningLengthTicks = warningLengthMins * (60 * 1000);
    var ticks = new Array(splitTitleString(titleText));
    var sla = parseInt(ticks[0]);
    var resp = parseInt(ticks[1]);
    var serverTicks = getTicks(serverDateTime);

    // some other work....
}

내가 가진 문제는 'resp'는 '진드기에도 불구하고 항상 난 이는 것입니다.1'가장 확실하게?

추신 : 난 아니에요 자바 스크립트 개발자는 코드가 좋지 않으면 친절하십시오.

도움이 되었습니까?

해결책

당신의 splitTitleString() 배열 값을 반환합니다.

그러나 정의 할 때 ticks, 당신은 말합니다 var ticks = new Array(splitTitleString(titleText));. SplitTitLestring의 리턴 값 하나의 요소로 구성된 배열을 정의합니다.

결과적으로, ticks[0] 분명히 정수가 아니며 배열입니다!

편집 : 수정하려면 다음과 같이 기능을 다시 작성하십시오.

function  warning(titleText, serverDateTime, warningLengthMins, warningType) 
{ 
    var warningLengthTicks = warningLengthMins * (60 * 1000); 
    //I removed the "new Array()" from the next line
    var ticks = splitTitleString(titleText); 
    var sla = parseInt(ticks[0]); 
    var resp = parseInt(ticks[1]); 
    var serverTicks = getTicks(serverDateTime); 

    // some other work.... 
} 

다른 팁

액세스하는 경우 resp 외부 warning() 기능, 문제는 사용하는 것입니다 var resp, 당신은 볼 수있는 새로운 변수를 정의합니다 포함 함수 내에서만. resp가 글로벌 변수 인 경우 var 키워드와 당신은 괜찮을 것입니다.

JavaScript의 로컬 및 글로벌 변수에 대한 멋진 요약은 여기를 참조하십시오. 가변 범위 및 VAR 키워드

Pekka가 올바르게 말한 것 외에도 Parseint는 Radix 매개 변수를 선호합니다. 문서에서 :

radix 매개 변수가 생략되면 JavaScript는 다음을 가정합니다.

  • 문자열이 "0x"로 시작하면 radix는 16입니다 (16 진수)
  • 문자열이 "0"로 시작하면 radix는 8 (10 년)입니다. 이 기능은 더 이상 사용되지 않습니다
  • 문자열이 다른 값으로 시작하면 radix는 10 (소수점)입니다.

"titletext"매개 변수로 전달하는 것은 실제로 int인지 확인하십시오. 내 말은 [1

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top