JSFiddle - React, Tailwind, and code Playground

HTML

<input type="button" id="kbc_Export_CreateCSV" value="Export to CSV" />

JavaScript

$(document).ready(function () {
    $('#kbc_Export_CreateCSV').click(function () {
        var data = [
            ["name1", "city1", "some other info"],
            ["name2", "city2", "more info"]
        ];
        var csv = ConvertToCSV(data);
        var fileName = "test";
        if (navigator.userAgent.search("MSIE") >= 0) {
            //This peice of code is not working in IE, we will working on this
            //TODO
            var uriContent = "data:application/octet-stream;filename=" + fileName + '.csv' + "," + escape(csv);
            window.open(uriContent + fileName + '.csv');
        } else {
            var uri = 'data:text/csv;charset=utf-8,' + escape(csv);
            var downloadLink = document.createElement("a");
            downloadLink.href = uri;
            downloadLink.download = fileName + ".csv";
            document.body.appendChild(downloadLink);
            downloadLink.click();
            document.body.removeChild(downloadLink);
        }


    });




});

function ConvertToCSV(objArray) {
    var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;

    var str = '';
    var line = '';

    var head = array[0];

    for (var index in array[0]) {
        var value = index + "";
        line += '"' + value.replace(/"/g, '""') + '",';
    }

    line = line.slice(0, -1);
    str += line + '\r\n';

    for (var i = 0; i < array.length; i++) {
        var line = '';
        for (var index in array[i]) {
            var value = array[i][index] + "";
            line += '"' + value.replace(/"/g, '""') + '",';
        }

        line = line.slice(0, -1);
        str += line + '\r\n';
    }
    return str;
};