refactoring
This commit is contained in:
		
							
								
								
									
										34
									
								
								scripts/background/result.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								scripts/background/result.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,34 @@ | ||||
| class ExtractResult { | ||||
|     constructor(data) { | ||||
|         this._data = data || []; | ||||
|  | ||||
|     } | ||||
|     row(index) { | ||||
|         return this._data[index]; | ||||
|     } | ||||
|     column(index) { | ||||
|         return [...new Array(this._data.length).keys()].map( | ||||
|             i => this._data[i][index] | ||||
|         ); | ||||
|     } | ||||
|     squash() { | ||||
|         return this._data.reduce((p, c) => p.concat(c), []); | ||||
|     } | ||||
|     get data() { | ||||
|         return this._data; | ||||
|     } | ||||
|     toString(rowsCount) { | ||||
|         let data = rowsCount > 0 ? this._data.slice(0, rowsCount) : this._data; | ||||
|         return data.slice().reduce( | ||||
|             (csv, lineCells) => { | ||||
|                 let line = lineCells.reduce( | ||||
|                     (lineText, cell, idx) => { | ||||
|                         cell = '"' + cell.trim().replace(/"/g, '""') + '"'; | ||||
|                         return lineText + cell + (idx == lineCells.length - 1 ? "" : ",") | ||||
|                     }, ""); | ||||
|                 return csv + line + "\n"; | ||||
|             }, | ||||
|             "" | ||||
|         ); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user