JSFiddle - React, Tailwind, and code Playground

by Christian Sonne

HTML

<textarea name="" id="t" cols="30" rows="10"></textarea>

JavaScript

const parse = (tsv) => {
  return tsv.split('\n').map(row => row.split('\t')).map(_objWithFirstAsHeader).slice(1)
}

const _objWithFirstAsHeader = (rowAry) => {
  _objWithFirstAsHeader.header = _objWithFirstAsHeader.header || rowAry
  return rowAry.reduce((p, c, i) => ({ [_objWithFirstAsHeader.header[i]]: c, ...p }), {})
}

t.addEventListener("input", function(){
	console.log(parse(this.value))
})