Upload and read csv

by Daniel Ayala

HTML

<input type="file" id="fileSelector" name="fileSelector" accept='*.csv' />

JavaScript

var csv = '';
var handleFileSelect = function (event) {
	var file = event.target.files[0];
  console.log('file', file);
  var reader = new FileReader();
  reader.onload = function () {
		var r = reader.result;
    csv = r;
    new csvFilter(csv);
  }
  reader.readAsText(file);
}

document.getElementById('fileSelector')
.addEventListener('change', handleFileSelect, false);

var csvFilter = function (csv) {
	this.csv = csv;
  console.log('got ', csv);
  var rows = [];
  var results = csv.split('\n');
  columnHeaders = results.shift();
  results.forEach(function (obj, i) {
  	var _columns = obj.split(',');
  	rows.push({
    	columns: _columns
    });
  });
  var states = {
  	unknown: 0
  };
  rows.forEach(function (obj) {
  	//home state is cell 5;
    var state = obj.columns[5];
    if (!state || state == null) {
    	states.unknown += 1;
    } else if (!states[state]) {
    	states[state] = 1;
    } else {
    	states[state] += 1;
    }
  });
  console.log('states', states);
  console.log('final', rows);
}