The simplest approach is to loop through your 2D array, convert each inner array into a CSV line, and concatenate them.
Once you have the CSV text, use the Blob API to create a CSV file on the fly, then generate a URL and simulate a click on a hidden link with the download attribute. This way, your users get a file download without any server interaction.