整合IF / Else系列

时间:2015-01-22 22:55:25

标签: javascript

如果变量值大于0,我有以下一系列的If / Else语句,它们都是相同的。然后将相关字段值设置为TRUE。这是在一系列中这样做的唯一方法,还是有更有效的方法。

if(tvEx > 0){
        nlapiSetFieldValue('custrecord_nsx_lic_ds_tvtun','T');      
    }else{
        nlapiSetFieldValue('custrecord_nsx_lic_ds_tvtun','F');
    }
    if(widEx > 0){
        nlapiSetFieldValue('custrecord_nsx_lic_ds_wdscrbnr','T');       
    }else{
        nlapiSetFieldValue('custrecord_nsx_lic_ds_wdscrbnr','F');
    }
    if(corEx > 0){
        nlapiSetFieldValue('custrecord_nsx_lic_ds_corex','T');      
    }else{
        nlapiSetFieldValue('custrecord_nsx_lic_ds_corex','F');
    }
    if(weatherEx > 0){
        nlapiSetFieldValue('custrecord_nsx_lic_ds_weather','T');        
    }else{
        nlapiSetFieldValue('custrecord_nsx_lic_ds_weather','F');
    }
    if(vidEx > 0){
        nlapiSetFieldValue('custrecord_nsx_lic_ds_vidcontr','T');       
    }else{
        nlapiSetFieldValue('custrecord_nsx_lic_ds_vidcontr','F');
    }
    if(myHd > 0){
        nlapiSetFieldValue('custrecord_nsx_lic_ds_myhd','T');       
    }else{
        nlapiSetFieldValue('custrecord_nsx_lic_ds_myhd','F');
    }
    if(newSight > 0){
        nlapiSetFieldValue('custrecord_nsx_lic_ds_new3d','T');      
    }else{
        nlapiSetFieldValue('custrecord_nsx_lic_ds_new3d','F');
    }
    if(qEx > 0){
        nlapiSetFieldValue('custrecord_nsx_lic_ds_queue','T');      
    }else{
        nlapiSetFieldValue('custrecord_nsx_lic_ds_queue','F');
    }

2 个答案:

答案 0 :(得分:3)

您可以通过循环运行:

var variables= [tvEx, widEx, corEx, weatherEx, vidEx, myHd, newSight, qEx],
    fields = ['tvtun', 'wdscrbnr', 'corex', 'weather', 'vidcontr', 'myhd', 'new3d', 'queue'];

for (var i = 0; i < variables.length; i++) {
  var field = 'custrecord_nsx_lic_ds_' + fields[i],
      value = variables[i] > 0 ? 'T' : 'F';

  nlapiSetFieldValue(field, value);
}

答案 1 :(得分:0)

您可以创建一个JSON对象,其中包含变量名称数组以及值:

var array = [
    {
        name:"tvEx",
        value:4
    },
    etc...
]

现在您可以遍历此数组,并在每个项目上测试if / else语句。致电nlapiSetValue()时,您可以执行以下操作:

nlapiSetValue('custrecord_nsx_lic_ds_' + array[i].name, 'T')