const data = [ [ 1, 'Timothy' , 'Hamilton' , 'Male' , '146.205.212.14' ], [ 2, 'Jose' , 'Parker' , 'Male' , '93.159.55.174' ], [ 3, 'Terry' , 'Vasquez' , 'Male' , '119.83.126.89' ], [ 4, 'Ruby' , 'Rose' , 'Female', '124.60.220.96' ], [ 5, 'Lawrence', 'Henderson', 'Male' , '208.165.238.89' ], [ 6, 'Jeffrey' , 'Campbell' , 'Male' , '235.159.156.1' ], [ 7, 'Jack' , 'Torres' , 'Male' , '220.147.205.219'], [ 8, 'Rachel' , 'Stanley' , 'Female', '186.17.24.36' ], [ 9, 'Gregory' , 'Pierce' , 'Male' , '241.176.82.141' ], [ 10, 'Ronald' , 'Hanson' , 'Male' , '70.93.233.186' ], ]; let csvData = ''; // create CSV data data.forEach((row) => { csvData += '\n'; csvData += row.reduce((prev, col) => `${prev},${col}`, '').slice(1); }); // add headers csvData = 'id,first_name,last_name,gender,ip_address' + csvData; downloadCSV = () => { const hiddenElement = document.createElement('a'); hiddenElement.href = `data:text/csv;charset=utf-8,${encodeURI(csvData)}`; hiddenElement.target = '_blank'; hiddenElement.download = 'download.csv'; document.body.appendChild(hiddenElement); hiddenElement.click(); hiddenElement.remove(); }; document.getElementById('download').addEventListener('click', downloadCSV);
<button id="download">Download CSV</button>