Node Parsing Example

by lsiv568

JavaScript

var fs = require("fs");
var _ = require("underscore");
 
var process = function(productsData, salesData) {
  console.log(salesData.split('\n').length + ' lines in the sales file')
  console.log(productsData.split('\n')[0])

 	var salesData = salesData.split("\n");
  	var rowNumber = 0;
	var rowDataObject = {};
	// create an object which contains an array of row values keyed to the row index
	_.each(salesData, function (value) {
		if (value.indexOf("\n") > 0) {
			rowDataObject[rowNumber].push(value);
			rowNumber += 1;	
		} else {
			if (!rowDataObject[rowNumber]) {
				rowDataObject[rowNumber] = [];
			} 
			rowDataObject[rowNumber].push(value);			
		}
	});

	var columnThreeData = [];
	var keys = _.keys(rowDataObject[0]);
	// column values can be retrieved by iterating over the keys of the row data object contents
	_.each(keys, function (key) {
		var theOBJ = rowDataObject[0][key];
		columnThreeData.push(rowDataObject[0][key].split("\t")[2]);
	});
 
}
 
fs.readFile("products.tab", 'utf-8', function (error, productsData) {
  fs.readFile("sales.tab", 'utf-8', function(error, salesData) {
    process(productsData, salesData);
  });
});