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...