JSFiddle - React, Tailwind, and code Playground

JavaScript

// Parse a CSV row, accounting for commas inside quotes  
// By Curran Kelleher 4/3/2014
// Public domain
function parse(row){
    var insideQuote = false,                                                
        entries = [],                                                       
        entry = [];
    row.split('').forEach(function (character) {                            
        if(character === '"') {
            insideQuote = !insideQuote;                                         
        } else {
            if(character == "," && !insideQuote) {                              
                entries.push(entry.join(''));                                     
                entry = [];                                                       
            } else {
                entry.push(character);                                            
            }                                                                   
        }                                                                     
    });
    entries.push(entry.join(''));                                           
    return entries;                                                         
}

// Example use:

// csv could contain the content read from a csv file
var csv = '"foo, the column",bar\n2,3\n"4, the value",5',
    
    // Split the input into lines
    lines = csv.split('\n'),
    
    // Extract column names from the first line
    columnNamesLine = lines[0],
    columnNames = parse(columnNamesLine),
    
    // Extract data from subsequent lines
    dataLines = lines.slice(1),
    data = dataLines.map(parse);

// Prints ["foo, the column","bar"]
console.log(JSON.stringify(columnNames));

// Prints [["2","3"],["4, the value","5"]]
console.log(JSON.stringify(data));

// Here's how you can transform the data
// into objects, like D3's csv parser:
var dataObjects = data.map(function (arr) {
    var dataObject = {};
    columnNames.forEach(function(columnName, i){
       ...