JSFiddle - React, Tailwind, and code Playground
JavaScript
var EXPORTDATA = [
{"col1":"hello", "col2":"goodbye", "col3":"moooo"},
{"col1":"mello", "col2":"goodbye", "col3":"moooo"},
{"col1":"yello", "col2":"goodbye", "col3":"moooo"},
{"col1":"jello", "col2":"goodbye", "col3":"moooo"}
];
var csvContent = [];
for(var i=0; i<EXPORTDATA.length; i++){
var rowContent = [];
var row = EXPORTDATA[i];
if(csvContent.length === 0){
for(var p in row)
if(row.hasOwnProperty(p))
rowContent.push('"'+ (""+p).replace('"','').replace(',','') +'"');
csvContent.push("data:text/csv;charset=utf-8,"+rowContent.join(","));
rowContent = [];
}
for(var p in row){
if(row.hasOwnProperty(p))
rowContent.push('"'+ (""+row[p]).replace('"','').replace(',','') +'"');
}
csvContent.push(rowContent.join(","));
}
var dat = csvContent.join("\n");
var encodedUri = encodeURI(dat);
window.open(encodedUri);