javaScript高手们,帮我看看这段程序用树或者其他的方法怎么优化!

zhoujia0983 2005-03-24 03:22:17
function checkDhDs()//检查单个订户单本书的订数是否小于0
{
rowCount = tableFsmx.rows.length;
if(rowCount < 2)//没有数据
return false;
var recCount = document.frmAddFsmx.hdfRecCount.value; //数据记录数
var strArrZddm = new Array(recCount);
var strArrDhdm = new Array(recCount);
var strArrDhmc = new Array(recCount);
var strArrDs = new Array(recCount);
var strArrMzddm = new Array(recCount);
var checkValue; //当前复选框的值
var currIndex =0;
var dhAndZddm=""; //保存单个订户单本书的订数小于0的
var currZddm,currMzddm,currDhdm;
var clFlag ="";//是否处理过的标志
var checkedCount =0;//选中记录数
if(recCount >1)
{
for(i=0;i<recCount;i++)
{
if(document.frmAddFsmx.checkMark[i].checked == true) //选中的数据行
{
checkValue=document.frmAddFsmx.checkMark[i].value;
strArrZddm[currIndex]=document.frmAddFsmx.hdfZddm[checkValue].value;
strArrMzddm[currIndex]=document.frmAddFsmx.hdfMzddm[checkValue].value;
strArrDhdm[currIndex]=document.frmAddFsmx.hdfDhdm[checkValue].value;
strArrDhmc[currIndex]=document.frmAddFsmx.hdfDh[checkValue].value;
strArrDs[currIndex]=document.frmAddFsmx.hdfYfss[checkValue].value;
currIndex++;
checkedCount++;
}
}
var strClDhdm = new Array(currIndex);//保存已经处理过的订户
var strClMzddm = new Array(currIndex);//保存已经处理过的征订代码
var strClZddm = new Array(currIndex);
var clArrIndex =0;//数组的下标
var dsSum;
for(i=0;i<currIndex;i++)
{
currZddm= strArrZddm[i];
currMzddm =strArrMzddm[i];
currDhdm = strArrDhdm[i];
clFlag ="0";
dsSum =parseInt(strArrDs[i]);
for(j=clArrIndex-1;j>=0;j--)
{
if(currZddm==strClZddm[j] && currMzddm == strClMzddm[j] && currDhdm== strClDhdm[j])
clFlag ="1";//表示该订户、该书处理过
}
if(clFlag =="1")
continue;
else //未处理
{
strClZddm[clArrIndex] = currZddm;
strClMzddm[clArrIndex] = currMzddm;
strClDhdm[clArrIndex] = currDhdm;
clArrIndex++;
for(j=i+1;j<currIndex;j++)
{
if(currZddm==strArrZddm[j] && currMzddm == strArrMzddm[j] && currDhdm== strArrDhdm[j])
dsSum += parseInt(strArrDs[j]);
if(currMzddm != strArrMzddm[j]) //到了下一本书
break;
}
if(parseInt(dsSum) <0)
dhAndZddm += strArrDhmc[i]+currZddm+"、";
}
}
}
else
{
if(document.frmAddFsmx.checkMark.checked == true) //选中的数据行
{
if(parseInt(document.frmAddFsmx.hdfYfss.value)<0)
dhAndZddm=document.frmAddFsmx.hdfDh.value+document.frmAddFsmx.hdfZddm.value;
checkedCount++;
}
}
if(checkedCount ==0)
return false;
if(dhAndZddm != "")
{
alert("以下订户征订代码的总订数小于零不能分书:\n"+dhAndZddm);
return false;
}
else
return true;
}
记录稍多了,实在不能运行了,速度慢的要死.先谢谢各位了.本人对树不太熟悉,希望高手不吝赐教!
...全文
27 点赞 收藏 3
写回复
3 条回复
zhoujia0983 2005年03月25日
希望大家帮忙给看看,其实过程不是很复杂的。急者用!
回复 点赞
zhoujia0983 2005年03月24日
怎么没找到梅花雪写的那个树呢,能否告诉我地址?
回复 点赞
LCKKING 2005年03月24日
晕!是不是太长了一点啊~~你看看梅花雪的那个树吧,也许用得着
回复 点赞
发动态
发帖子
JavaScript
创建于2007-09-28

5.1w+

社区成员

22.3w+

社区内容

Web 开发 JavaScript
社区公告
暂无公告