虽然我已经回顾了以前几篇文章,但我的新手功能对于加速执行以下代码的解决方案是盲目的。有几百k,每个k有(数十)数千i和nearSum()有一个循环来评估testStr。
此代码很慢并且超时Chrome - 如何改进执行? 在你提问之前,任何代码的唯一原因是'因为它正在工作'。 nn的值是全局变量。
Function()…
resArrLen = resultArray[k].length;
for (i=0;i<resArrLen;i++)
{
testStr = resultArray[k][i].toString();
resultArray[k][i] = testStr + "'" + nearSum(testStr);
}//end for i
…
function nearSum(seqFrag)
{
var i=0;
var ninj=0;
var seqFragLen=0;
var calcVal=0;
var nn="";
//sum values
seqFragLen = seqFrag.length;
for (i=0; i+1<seqFragLen; i++)
{
nn = seqFrag.substr(i,2); //gets value
ninj = eval(nn);
calcVal = calcVal.valueOf() + ninj.valueOf();
} //end for i
return calcVal.toFixed(2);
} //end nearSum
答案 0 :(得分:0)
首先,您似乎使用'eval'将字符串转换为数字。这不是打算如何使用。请改用“Number(nn)”或“parseInt(nn)”。
否则,代码不完整,没有示例数据,很难优化。