2016-09-19 82 views
0

我從UI.Below表中取一排是隻有一行 從表UI值我的控制檯上:合併複雜的二維數組合併爲一個

[ ' 0', 
    'ALPHA NUMERIC(100)\nPG_8_2670\nSt.Athens.,Pt\n1062645\nAutomation-if add row is editable\nALPHA NUMERIC(20)\nTIMESTAMP(19)\nYYYY-MM-DD(19)\n0' ] 

現在我想上述結果轉換成以下格式。

[ ' 0','ALPHA NUMERIC(100)','PG_8_2670','St.Athens.,Pt','1062645','Automation-if add row is editable','ALPHA NUMERIC(20)','TIMESTAMP(19)','YYYY-MM-DD(19)','0' ] 

的問題,我其實面臨的是逗號,它存在於'St.Athens.,Pt' 我寫了下面的代碼,但是這並沒有幫助:

client.getText(obj.table.addedRow,function(err, values) { 
       console.log('VAlues before changes:',values); 
       var str = values.toString(); 
       str = str.replace(/\n/g,","); 
       var values = str.split(',').toString(); 
       console.log('Values from table of empty row post changes:',values); 

回答

1

從根本上它並不像你需要這些行

str = str.replace(/\n/g,","); 
    values = str.split(',').toString(); 

直接分割\ n可能更有效;因此

values = str.split('\n'); 

雖然你可能想要管理陣列好一點;像彈出式推送或循環推送組合的循環應該會給你所需的結果。

下面是一個完整的工作代碼示例:

var startArray = [ ' 0', 
    'ALPHA NUMERIC(100)\nPG_8_2670\nSt.Athens.,Pt\n1062645\nAutomation-if add row is editable\nALPHA NUMERIC(20)\nTIMESTAMP(19)\nYYYY-MM-DD(19)\n0' ]; 
var endArray = []; 

startArray.forEach(function(key) { 
    if(key.indexOf("\n")>=0) { 
     endArray = endArray.concat(key.split('\n')); 
    } else { 
     endArray.push(key); 
    } 
}); 

// voila, endArray contains 
// [ ' 0','ALPHA NUMERIC(100)','PG_8_2670','St.Athens.,Pt','1062645','Automation-if add row is editable','ALPHA NUMERIC(20)','TIMESTAMP(19)','YYYY-MM-DD(19)','0' ]