JSFiddle - React, Tailwind, and code Playground

by Mukesh Yadav

JavaScript

function sortCsvColumns (csv_data) {
  var data = [];
  var allData = csv_data.split('\n')
  var headers = allData[0].split(',');
  var tmpHeaders = allData[0].split(',');
  var order = [];
  tmpHeaders = tmpHeaders.map(function(val){
    return val.toLowerCase();
  })
  console.log('tmpHeaders', tmpHeaders);
  var sortedHeader = tmpHeaders.sort();
  console.log('sortedHeader', sortedHeader);
  sortedHeader.forEach(function(val, i){
    order.push(headers.indexOf(val));
  });
  console.log('order', order);
  data.push(sortedHeader.join(','));
  allData.splice(0, 1);
  allData.forEach(function(row){
    let tmpCols = row.split(',');
    let cols = row.split(',');

    cols.forEach(function(val, j){
        cols[j] = tmpCols[order[j]];
    });
    data.push(cols.join(','));
  })
  return data.join("\n")
}

console.log(sortCsvColumns("Active,First Name,Last Name,Notes,Suffix,country,email,id\nfalse,Judith,Williamson,augue vel accumsan tellus,,Poland,[email protected],1\nfalse,Paul,Kelly,lacus at velit,,China,[email protected],2\nfalse,Lillian,Payne,pede libero quis orci,,China,[email protected],3\nfalse,Eric,Berry,odio donec,,Jamaica,[email protected],4\nfalse,Marie,Dunn,metus aenean fermentum donec ut,,Democratic Republic of the Congo,[email protected],5\ntrue,Helen,Montgomery,rutrum ac lobortis vel,Sr,Philippines,[email protected],6\nfalse,Jose,Kim,nunc viverra,,Yemen,[email protected],7\nfalse,Carol,Mason,tortor sollicitudin mi,,Thailand,[email protected],8\ntrue,Andrew,Sanchez,purus phasellus in felis donec,,Nigeria,[email protected],9\ntrue,Brandon,Frazier,,,,[email protected],10\ntrue,Maria,Simmons,scelerisque mauris sit amet eros,,United States,[email protected],11\ntrue,Nancy,Robinson,vestibulum ac,,Russia,[email protected],12\ntrue,Thomas,Medina,,Jr,,[email protected],13\nfalse,Craig,Carter,justo lacinia eget,IV,Poland,[email protected],14\nfalse,Joan,Sanders,in eleifend quam a...