我有以下两种功能...

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....
}

我的问题是'或'总是南虽然'蜱1 最肯定是什么?

PS:我不是一个 JavaScript 开发所以请不错的如果这是可怜的代码。

有帮助吗?

解决方案

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正确地说,确给出更喜欢有一个基数的参数。从文档:

如果基数的参数被省略, JavaScript假定如下:

  • 如果串的开始"0x", 基数是16(十六)
  • 如果的 串的开始"0"时,基数为8 (八).这一特征被弃用
  • 如果串的开始与任何其他 值,基数为10(小)

什么是你传递的“titleText”参数,检查它是否确实是一个int。我的意思是[1]

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top