function TOR(All,From,To,danshuan){
var fb = document.getElementById(From);
var tb = document.getElementById(To);
if(danshuan){
var danshuan = document.getElementById(danshuan).checked;
if(true == danshuan){
var is_double = ' -- [双向关联]';
var is_db = ',1';
}else{
var is_double = ' -- [单向关联]';
var is_db = ',0';
}
}else{
var is_double = '';
var is_db = '';
}
if('All' == All){
for(var f=0;f<fb.options.length;f++){
var p='';
var vlu = fb.options[f].value+is_db;
//检查对像select框中是否已存在
for(var t=0;t<tb.options.length;t++){
if(tb.options[t].value == vlu){
p = 'j';
break;
}
}
if(p==''){
//在对像select框中插入
tb.options[tb.options.length] = new Option(fb.options[f].text+is_double,vlu);
}
}
}else{
for(var f=0;f<fb.options.length;f++){
if(fb.options[f].selected){
var p='';
var vlu = fb.options[f].value+is_db;
//检查对像select框中是否已存在
for(var t=0;t<tb.options.length;t++){
if(tb.options[t].value == vlu){
p = 'j';
break;
}
}
if(p==''){
//在对像select框中插入
tb.options[tb.options.length] = new Option(fb.options[f].text+is_double,vlu);
}
}
}
}
}小弟刚学JS不久,功能虽是实现了,但总觉得这代码太冗余。
哪位大侠能帮我将这段代码优化优化么?里面只几处不理想的地方。
改成二个独立的函数也可以.

解决方案 »

  1.   

    算法问题没辙,不知道你的函数具体干什么的,比如你可以把if else语句换成
    var is_double = danshuan==true? ' -- [双向关联]':'';
    这样看起来稍微好点
    还有就是你有太多的if和else和循环判断,我觉得是否有必要,比如你第一次循环遍历了options,找到了目标,这个目标下面是否可以再使用,如果可以使用就无须在遍历。