JSFiddle - React, Tailwind, and code Playground

by Nayana Das

HTML

<h3>
CSV each column into separate array
</h3>
<textarea id="test-csv"></textarea><br>
<button id="parse-button" >Parse</button>

CSS

textarea {
    width: 600px;
    height: 300px;
}

JavaScript

$("#parse-button").click(function(){

var data=$('#test-csv').val();

	//alert(data);
  
  
  var csvarray=CSVToArray( data, "," );
  var mainArr=[];
 for (var i = 0; i < csvarray.length; i++) {
 			var arrr=[];
     for(var j=0; j <csvarray.length; j++){
        // console.log(csvarray[j][i]);
         
         
         		arrr.push(csvarray[j][i])
        
     }
     if(i==csvarray[i].length){
         	   break;
     }
     mainArr.push(arrr);
}
  console.log(JSON.stringify(mainArr));
  
   var mainNumArr=[];
 for (var i = 0; i < mainArr.length; i++) {
 			//console.log(csvarray[i]);
     if(typeof mainArr[i] === 'number'){
     	var csvarray1=mainArr[i].map(Number);
    	 mainNumArr.push(csvarray1);
     }else{
     		mainNumArr.push(mainArr[i]);
     }
     
}
  console.log("MAIN_ARRAY number :: "+JSON.stringify(mainNumArr));
  
});

function CSVToArray( strData, strDelimiter ){

        // Check to see if the delimiter is defined. If not,
        // then default to comma.
        strDelimiter = (strDelimiter || ",");

        // Create a regular expression to parse the CSV values.
        var objPattern = new RegExp(
            (
                // Delimiters.
                "(\\" + strDelimiter + "|\\r?\\n|\\r|^)" +

                // Quoted fields.
                "(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" +

                // Standard fields.
                "([^\"\\" + strDelimiter + "\\r\\n]*))"
            ),
            "gi"
            );


        // Create an array to hold our data. Give the array
        // a default empty first row.
        var arrData = [[]];

        // Create an array to hold our individual pattern
        // matching groups.
        var arrMatches = null;


        // Keep looping over the regular expression matches
        // until we can no longer find a match.
        while (arrMatches = objPattern.exec( strData )){

            // Get the delimiter that was found.
            var strMatchedDelimiter = arrMatches[ 1 ];

    ...