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))
})