2017-08-30 64 views
1

我在这里有一个示例代码。删除undefined里面的For循环/如果

function updateMasterfile() { 
    //Source Sheet 
    var mstfile_sht = mstfile_ss.getActiveSheet(); 
    var mstfile_lstrow = mstfile_sht.getLastRow(); 
    var mst_decrnge = 'A2:I' + mstfile_lstrow; 
    var mst_rnge = mstfile_sht.getRange(mst_decrnge); 
    var mst_data = mst_rnge.getValues(); 

    //Target Sheet 
    var cstmr_sht = cstmr_ss.getSheetByName('Customers'); 
    var cstmr_lstrow = cstmr_sht.getLastRow(); 
    var cstmr_decrnge = 'A2:G' + cstmr_lstrow; 
    var cstmr_rnge = cstmr_sht.getRange(cstmr_decrnge); 
    var cstmr_data = cstmr_rnge.getValues(); 

    for (var i=0; i < cstmr_data.length; i++){ 
    var C_SDOCode = cstmr_data[i][0]; 
    for (var j=0; j < mst_data.length; j++){ 
     var M_SDOCode = mst_data[j][6]; 
     var M_RSMCode = mst_data[j][3]; 
     var M_RSMEmail = mst_data[j][2]; 
     var M_SDOEmail = mst_data[j][4]; 
     if(C_SDOCode == M_SDOCode){ 
     rtrn_rsmcode = M_RSMCode; 
     rtrn_rsmemail = M_RSMEmail; 
     rtrn_sdoemail = M_SDOEmail; 
     } 
     } 
    cstmr_data[i][4] = rtrn_rsmcode; 
    cstmr_data[i][5] = rtrn_rsmemail; 
    cstmr_data[i][6] = rtrn_sdoemail; 
    cstmr_rnge.setValues(cstmr_data); 
    } 
    //Browser.msgBox('Update Completed.'); 
} 

此代码是在条件的一部分。然而工作正常时该值为false我的意思是,如果条件不符合该值显示undefined我怎么能删除?或将其更改为空字符串?

+2

'cstmr_data [i] [4] = rtrn_rsmcode || '''? (除非'0'可能是一个有效值。)注意,一旦那些'rtrn_xyz'变量有一个值,它们从不会被设置回*为undefined,因此在循环的第一次迭代中分配的任何值都将继续应用即使“if”条件再也不会是真的。 – nnnnnn

回答

2

也许这可能适合你。

function updateMasterfile() 
{ 
    //Source Sheet 
    var mstfile_sht = mstfile_ss.getActiveSheet(); 
    var mstfile_lstrow = mstfile_sht.getLastRow(); 
    var mst_decrnge = 'A2:I' + mstfile_lstrow; 
    var mst_rnge = mstfile_sht.getRange(mst_decrnge); 
    var mst_data = mst_rnge.getValues(); 

    //Target Sheet 
    var cstmr_sht = cstmr_ss.getSheetByName('Customers'); 
    var cstmr_lstrow = cstmr_sht.getLastRow(); 
    var cstmr_decrnge = 'A2:G' + cstmr_lstrow; 
    var cstmr_rnge = cstmr_sht.getRange(cstmr_decrnge); 
    var cstmr_data = cstmr_rnge.getValues(); 

    for (var i=0; i < cstmr_data.length; i++) 
    { 
    var C_SDOCode = cstmr_data[i][0]; 
    for (var j=0; j < mst_data.length; j++) 
    { 
     var M_SDOCode = mst_data[j][6]; 
     var M_RSMCode = mst_data[j][3]; 
     var M_RSMEmail = mst_data[j][2]; 
     var M_SDOEmail = mst_data[j][4]; 
     if(C_SDOCode == M_SDOCode) 
     { 
     rtrn_rsmcode = M_RSMCode; 
     rtrn_rsmemail = M_RSMEmail; 
     rtrn_sdoemail = M_SDOEmail; 
     } 
    } 
    cstmr_data[i][4] = (typeof(rtrn_rsmcode)!='undefined')?rtrn_rsmcode:''; 
    cstmr_data[i][5] = (typeof(rtrn_rsmemail)!='undefined')?rtrn_rsmemail:''; 
    cstmr_data[i][6] = (typeof(rtrn_sdoemail)!='undefined')?rtrn_sdoemail:''; 
    cstmr_rnge.setValues(cstmr_data); 
    } 
}