2017-08-30 6 views
1

ここにサンプルコードがあります。値が条件がどのように私はそれを削除することができた値が表示さundefinedを満たしていない場合、私は意味falseの場合 未定義の内部ループを削除/もし

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.'); 
} 

このコード

は、条件の一部でしかし正常に動作していますか?空の文字列に変更しますか?

+2

'cstmr_data [i] [4] = rtrn_rsmcode || ''? ( '0'が有効な値でない限り)' rtrn_xyz'変数に値が設定されると、ループの最初の反復で割り当てられた値はそのまま適用されます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); 
    } 
} 
関連する問題