Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Turning JavaScript Arrays into Columns for CSV file

I am trying to output a multi-dimensional array to a CSV file, where each array outputs as a column in the file. Here are my declarations for the arrays:

thetaColumn =
[-10,-9.95,-9.9,-9.85,-9.8,-9.75,-9.7,-9.65,-9.6,-9.55,-9.5,-9.45,-9.4,-9.35,-9.3,-9.25,-9.2,-9.15,-9.1,-9.05,-9,-8.95,-8.9,-8.85,-8.8,-8.75,-8.7,-8.65,-8.6,-8.55,-8.5,-8.45,-8.4,-8.35,-8.3,-8.25,-8.2,-8.15,-8.1,-8.05,-8,-7.95,-7.9,-7.85,-7.8,-7.75,-7.7,-7.65,-7.6,-7.55,-7.5,-7.45,-7.4,-7.35,-7.3,-7.25,-7.2,-7.15,-7.1,-7.05,-7,-6.95,-6.9,-6.85,-6.8,-6.75,-6.7,-6.65,-6.6,-6.55,-6.5,-6.45,-6.4,-6.35,-6.3,-6.25,-6.2,-6.15,-6.1,-6.05,-6,-5.95,-5.9,-5.85,-5.8,-5.75,-5.7,-5.65,-5.6,-5.55,-5.5,-5.45,-5.4,-5.35,-5.3,-5.25,-5.2,-5.15,-5.1,-5.05,-5,-4.95,-4.9,-4.85,-4.8,-4.75,-4.7,-4.65,-4.6,-4.55,-4.5,-4.45,-4.4,-4.35,-4.3,-4.25,-4.2,-4.15,-4.1,-4.05,-4,-3.95,-3.9,-3.85,-3.8,-3.75,-3.7,-3.65,-3.6,-3.55,-3.5,-3.45,-3.4,-3.35,-3.3,-3.25,-3.2,-3.15,-3.1,-3.05,-3,-2.95,-2.9,-2.85,-2.8,-2.75,-2.7,-2.65,-2.6,-2.55,-2.5,-2.45,-2.4,-2.35,-2.3,-2.25,-2.2,-2.15,-2.1,-2.05,-2,-1.95,-1.9,-1.85,-1.8,-1.75,-1.7,-1.65,-1.6,-1.55,-1.5,-1.45,-1.4,-1.35,-1.3,-1.25,-1.2,-1.15,-1.1,-1.05,-1,-0.95,-0.9,-0.85,-0.8,-0.75,-0.7,-0.65,-0.6,-0.55,-0.5,-0.45,-0.4,-0.35,-0.3,-0.25,-0.2,-0.15,-0.1,-0.05,0,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1,1.05,1.1,1.15,1.2,1.25,1.3,1.35,1.4,1.45,1.5,1.55,1.6,1.65,1.7,1.75,1.8,1.85,1.9,1.95,2,2.05,2.1,2.15,2.2,2.25,2.3,2.35,2.4,2.45,2.5,2.55,2.6,2.65,2.7,2.75,2.8,2.85,2.9,2.95,3,3.05,3.1,3.15,3.2,3.25,3.3,3.35,3.4,3.45,3.5,3.55,3.6,3.65,3.7,3.75,3.8,3.85,3.9,3.95,4,4.05,4.1,4.15,4.2,4.25,4.3,4.35,4.4,4.45,4.5,4.55,4.6,4.65,4.7,4.75,4.8,4.85,4.9,4.95,5,5.05,5.1,5.15,5.2,5.25,5.3,5.35,5.4,5.45,5.5,5.55,5.6,5.65,5.7,5.75,5.8,5.85,5.9,5.95,6,6.05,6.1,6.15,6.2,6.25,6.3,6.35,6.4,6.45,6.5,6.55,6.6,6.65,6.7,6.75,6.8,6.85,6.9,6.95,7,7.05,7.1,7.15,7.2,7.25,7.3,7.35,7.4,7.45,7.5,7.55,7.6,7.65,7.7,7.75,7.8,7.85,7.9,7.95,8,8.05,8.1,8.15,8.2,8.25,8.3,8.35,8.4,8.45,8.5,8.55,8.6,8.65,8.7,8.75,8.8,8.85,8.9,8.95,9,9.05,9.1,9.15,9.2,9.25,9.3,9.35,9.4,9.45,9.5,9.55,9.6,9.65,9.7,9.75,9.8,9.85,9.9,9.95,10,10.05,10.1,10.15,10.2,10.25,10.3,10.35,10.4,10.45,10.5,10.55,10.6,10.65,10.7,10.75,10.8,10.85,10.9,10.95,11,11.05,11.1,11.15,11.2,11.25,11.3,11.35,11.4,11.45,11.5,11.55,11.6,11.65,11.7,11.75,11.8,11.85,11.9,11.95,12,12.05,12.1,12.15,12.2,12.25,12.3,12.35,12.4,12.45,12.5,12.55,12.6,12.65,12.7,12.75,12.8,12.85,12.9,12.95,13,13.05,13.1,13.15,13.2,13.25,13.3,13.35,13.4,13.45,13.5,13.55,13.6,13.65,13.7,13.75,13.8,13.85,13.9,13.95,14,14.05,14.1,14.15,14.2,14.25,14.3,14.35,14.4,14.45,14.5,14.55,14.6,14.65,14.7,14.75,14.8,14.85,14.9,14.95,15,15.05,15.1,15.15,15.2,15.25,15.3,15.35,15.4,15.45,15.5,15.55,15.6,15.65,15.7,15.75,15.8,15.85,15.9,15.95,16,16.05,16.1,16.15,16.2,16.25,16.3,16.35,16.4,16.45,16.5,16.55,16.6,16.65,16.7,16.75,16.8,16.85,16.9,16.95,17,17.05,17.1,17.15,17.2,17.25,17.3,17.35,17.4,17.45,17.5,17.55,17.6,17.65,17.7,17.75,17.8,17.85,17.9,17.95,18,18.05,18.1,18.15,18.2,18.25,18.3,18.35,18.4,18.45,18.5,18.55,18.6,18.65,18.7,18.75,18.8,18.85,18.9,18.95,19,19.05,19.1,19.15,19.2,19.25,19.3,19.35,19.4,19.45,19.5,19.55,19.6,19.65,19.7,19.75,19.8,19.85,19.9,19.95,20,20.05,20.1,20.15,20.2,20.25,20.3,20.35,20.4,20.45,20.5,20.55,20.6,20.65,20.7,20.75,20.8,20.85,20.9,20.95,21,21.05,21.1,21.15,21.2,21.25,21.3,21.35,21.4,21.45,21.5,21.55,21.6,21.65,21.7,21.75,21.8,21.85,21.9,21.95,22,22.05,22.1,22.15,22.2,22.25,22.3,22.35,22.4,22.45,22.5,22.55,22.6,22.65,22.7,22.75,22.8,22.85,22.9,22.95,23,23.05,23.1,23.15,23.2,23.25,23.3,23.35,23.4,23.45,23.5,23.55,23.6,23.65,23.7,23.75,23.8,23.85,23.9,23.95,24,24.05,24.1,24.15,24.2,24.25,24.3,24.35,24.4,24.45,24.5,24.55,24.6,24.65,24.7,24.75,24.8,24.85,24.9,24.95,25,25.05,25.1,25.15,25.2,25.25,25.3,25.35,25.4,25.45,25.5,25.55,25.6,25.65,25.7,25.75,25.8,25.85,25.9,25.95,26,26.05,26.1,26.15,26.2,26.25,26.3,26.35,26.4,26.45,26.5,26.55,26.6,26.65,26.7,26.75,26.8,26.85,26.9,26.95,27,27.05,27.1,27.15,27.2,27.25,27.3,27.35,27.4,27.45,27.5,27.55,27.6,27.65,27.7,27.75,27.8,27.85,27.9,27.95,28,28.05,28.1,28.15,28.2,28.25,28.3,28.35,28.4,28.45,28.5,28.55,28.6,28.65,28.7,28.75,28.8,28.85,28.9,28.95,29,29.05,29.1,29.15,29.2,29.25,29.3,29.35,29.4,29.45,29.5,29.55,29.6,29.65,29.7,29.75,29.8,29.85,29.9,29.95,30,30.05,30.1,30.15,30.2,30.25,30.3,30.35,30.4,30.45,30.5,30.55,30.6,30.65,30.7,30.75,30.8,30.85,30.9,30.95,31,31.05,31.1,31.15,31.2,31.25,31.3,31.35,31.4,31.45,31.5,31.55,31.6,31.65,31.7,31.75,31.8,31.85,31.9,31.95,32,32.05,32.1,32.15,32.2,32.25,32.3,32.35,32.4,32.45,32.5,32.55,32.6,32.65,32.7,32.75,32.8,32.85,32.9,32.95,33,33.05,33.1,33.15,33.2,33.25,33.3,33.35,33.4,33.45,33.5,33.55,33.6,33.65,33.7,33.75,33.8,33.85,33.9,33.95,34,34.05,34.1,34.15,34.2,34.25,34.3,34.35,34.4,34.45,34.5,34.55,34.6,34.65,34.7,34.75,34.8,34.85,34.9,34.95,35,35.05,35.1,35.15,35.2,35.25,35.3,35.35,35.4,35.45,35.5,35.55,35.6,35.65,35.7,35.75,35.8,35.85,35.9,35.95,36,36.05,36.1,36.15,36.2,36.25,36.3,36.35,36.4,36.45,36.5,36.55,36.6,36.65,36.7,36.75,36.8,36.85,36.9,36.95,37,37.05,37.1,37.15,37.2,37.25,37.3,37.35,37.4,37.45,37.5,37.55,37.6,37.65,37.7,37.75,37.8,37.85,37.9,37.95,38,38.05,38.1,38.15,38.2,38.25,38.3,38.35,38.4,38.45,38.5,38.55,38.6,38.65,38.7,38.75,38.8,38.85,38.9,38.95,39,39.05,39.1,39.15,39.2,39.25,39.3,39.35,39.4,39.45,39.5,39.55,39.6,39.65,39.7,39.75,39.8,39.85,39.9,39.95,40,40.05,40.1,40.15,40.2,40.25,40.3,40.35,40.4,40.45,40.5,40.55,40.6,40.65,40.7,40.75,40.8,40.85,40.9,40.95,41,41.05,41.1,41.15,41.2,41.25,41.3,41.35,41.4,41.45,41.5,41.55,41.6,41.65,41.7,41.75,41.8,41.85,41.9,41.95,42,42.05,42.1,42.15,42.2,42.25,42.3,42.35,42.4,42.45,42.5,42.55,42.6,42.65,42.7,42.75,42.8,42.85,42.9,42.95,43,43.05,43.1,43.15,43.2,43.25,43.3,43.35,43.4,43.45,43.5,43.55,43.6,43.65,43.7,43.75,43.8,43.85,43.9,43.95,44,44.05,44.1,44.15,44.2,44.25,44.3,44.35,44.4,44.45,44.5,44.55,44.6,44.65,44.7,44.75,44.8,44.85,44.9,44.95,45,45.05,45.1,45.15,45.2,45.25,45.3,45.35,45.4,45.45,45.5,45.55,45.6,45.65,45.7,45.75,45.8,45.85,45.9,45.95,46,46.05,46.1,46.15,46.2,46.25,46.3,46.35,46.4,46.45,46.5,46.55,46.6,46.65,46.7,46.75,46.8,46.85,46.9,46.95,47,47.05,47.1,47.15,47.2,47.25,47.3,47.35,47.4,47.45,47.5,47.55,47.6,47.65,47.7,47.75,47.8,47.85,47.9,47.95,48,48.05,48.1,48.15,48.2,48.25,48.3,48.35,48.4,48.45,48.5,48.55,48.6,48.65,48.7,48.75,48.8,48.85,48.9,48.95,49,49.05,49.1,49.15,49.2,49.25,49.3,49.35,49.4,49.45,49.5,49.55,49.6,49.65,49.7,49.75,49.8,49.85,49.9,49.95,50,50.05,50.1,50.15,50.2,50.25,50.3,50.35,50.4,50.45,50.5,50.55,50.6,50.65,50.7,50.75,50.8,50.85,50.9,50.95,51,51.05,51.1,51.15,51.2,51.25,51.3,51.35,51.4,51.45,51.5,51.55,51.6,51.65,51.7,51.75,51.8,51.85,51.9,51.95,52,52.05,52.1,52.15,52.2,52.25,52.3,52.35,52.4,52.45,52.5,52.55,52.6,52.65,52.7,52.75,52.8,52.85,52.9,52.95,53,53.05,53.1,53.15,53.2,53.25,53.3,53.35,53.4,53.45,53.5,53.55,53.6,53.65,53.7,53.75,53.8,53.85,53.9,53.95,54,54.05,54.1,54.15,54.2,54.25,54.3,54.35,54.4,54.45,54.5,54.55,54.6,54.65,54.7,54.75,54.8,54.85,54.9,54.95,55,55.05,55.1,55.15,55.2,55.25,55.3,55.35,55.4,55.45,55.5,55.55,55.6,55.65,55.7,55.75,55.8,55.85,55.9,55.95,56,56.05,56.1,56.15,56.2,56.25,56.3,56.35,56.4,56.45,56.5,56.55,56.6,56.65,56.7,56.75,56.8,56.85,56.9,56.95,57,57.05,57.1,57.15,57.2,57.25,57.3,57.35,57.4,57.45,57.5,57.55,57.6,57.65,57.7,57.75,57.8,57.85,57.9,57.95,58,58.05,58.1,58.15,58.2,58.25,58.3,58.35,58.4,58.45,58.5,58.55,58.6,58.65,58.7,58.75,58.8,58.85,58.9,58.95,59,59.05,59.1,59.15,59.2,59.25,59.3,59.35,59.4,59.45,59.5,59.55,59.6,59.65,59.7,59.75,59.8,59.85,59.9,59.95,60,60.05,60.1,60.15,60.2,60.25,60.3,60.35,60.4,60.45,60.5,60.55,60.6,60.65,60.7,60.75,60.8,60.85,60.9,60.95,61,61.05,61.1,61.15,61.2,61.25,61.3,61.35,61.4,61.45,61.5,61.55,61.6,61.65,61.7,61.75,61.8,61.85,61.9,61.95,62,62.05,62.1,62.15,62.2,62.25,62.3,62.35,62.4,62.45,62.5,62.55,62.6,62.65,62.7,62.75,62.8,62.85,62.9,62.95,63,63.05,63.1,63.15,63.2,63.25,63.3,63.35,63.4,63.45,63.5,63.55,63.6,63.65,63.7,63.75,63.8,63.85,63.9,63.95,64,64.05,64.1,64.15,64.2,64.25,64.3,64.35,64.4,64.45,64.5,64.55,64.6,64.65,64.7,64.75,64.8,64.85,64.9,64.95,65,65.05,65.1,65.15,65.2,65.25,65.3,65.35,65.4,65.45,65.5,65.55,65.6,65.65,65.7,65.75,65.8,65.85,65.9,65.95,66,66.05,66.1,66.15,66.2,66.25,66.3,66.35,66.4,66.45,66.5,66.55,66.6,66.65,66.7,66.75,66.8,66.85,66.9,66.95,67,67.05,67.1,67.15,67.2,67.25,67.3,67.35,67.4,67.45,67.5,67.55,67.6,67.65,67.7,67.75,67.8,67.85,67.9,67.95,68,68.05,68.1,68.15,68.2,68.25,68.3,68.35,68.4,68.45,68.5,68.55,68.6,68.65,68.7,68.75,68.8,68.85,68.9,68.95,69,69.05,69.1,69.15,69.2,69.25,69.3,69.35,69.4,69.45,69.5,69.55,69.6,69.65,69.7,69.75,69.8,69.85,69.9,69.95,70,70.05,70.1,70.15,70.2,70.25,70.3,70.35,70.4,70.45,70.5,70.55,70.6,70.65,70.7,70.75,70.8,70.85,70.9,70.95,71,71.05,71.1,71.15,71.2,71.25,71.3,71.35,71.4,71.45,71.5,71.55,71.6,71.65,71.7,71.75,71.8,71.85,71.9,71.95,72,72.05,72.1,72.15,72.2,72.25,72.3,72.35,72.4,72.45,72.5,72.55,72.6,72.65,72.7,72.75,72.8,72.85,72.9,72.95,73,73.05,73.1,73.15,73.2,73.25,73.3,73.35,73.4,73.45,73.5,73.55,73.6,73.65,73.7,73.75,73.8,73.85,73.9,73.95,74,74.05,74.1,74.15,74.2,74.25,74.3,74.35,74.4,74.45,74.5,74.55,74.6,74.65,74.7,74.75,74.8,74.85,74.9,74.95,75,75.05,75.1,75.15,75.2,75.25,75.3,75.35,75.4,75.45,75.5,75.55,75.6,75.65,75.7,75.75,75.8,75.85,75.9,75.95,76,76.05,76.1,76.15,76.2,76.25,76.3,76.35,76.4,76.45,76.5,76.55,76.6,76.65,76.7,76.75,76.8,76.85,76.9,76.95,77,77.05,77.1,77.15,77.2,77.25,77.3,77.35,77.4,77.45,77.5,77.55,77.6,77.65,77.7,77.75,77.8,77.85,77.9,77.95,78,78.05,78.1,78.15,78.2,78.25,78.3,78.35,78.4,78.45,78.5,78.55,78.6,78.65,78.7,78.75,78.8,78.85,78.9,78.95,79,79.05,79.1,79.15,79.2,79.25,79.3,79.35,79.4,79.45,79.5,79.55,79.6,79.65,79.7,79.75,79.8,79.85,79.9,79.95,80,80.05,80.1,80.15,80.2,80.25,80.3,80.35,80.4,80.45,80.5,80.55,80.6,80.65,80.7,80.75,80.8,80.85,80.9,80.95,81,81.05,81.1,81.15,81.2,81.25,81.3,81.35,81.4,81.45,81.5,81.55,81.6,81.65,81.7,81.75,81.8,81.85,81.9,81.95,82,82.05,82.1,82.15,82.2,82.25,82.3,82.35,82.4,82.45,82.5,82.55,82.6,82.65,82.7,82.75,82.8,82.85,82.9,82.95,83,83.05,83.1,83.15,83.2,83.25,83.3,83.35,83.4,83.45,83.5,83.55,83.6,83.65,83.7,83.75,83.8,83.85,83.9,83.95,84,84.05,84.1,84.15,84.2,84.25,84.3,84.35,84.4,84.45,84.5,84.55,84.6,84.65,84.7,84.75,84.8,84.85,84.9,84.95,85,85.05,85.1,85.15,85.2,85.25,85.3,85.35,85.4,85.45,85.5,85.55,85.6,85.65,85.7,85.75,85.8,85.85,85.9,85.95,86,86.05,86.1,86.15,86.2,86.25,86.3,86.35,86.4,86.45,86.5,86.55,86.6,86.65,86.7,86.75,86.8,86.85,86.9,86.95,87,87.05,87.1,87.15,87.2,87.25,87.3,87.35,87.4,87.45,87.5,87.55,87.6,87.65,87.7,87.75,87.8,87.85,87.9,87.95,88,88.05,88.1,88.15,88.2,88.25,88.3,88.35,88.4,88.45,88.5,88.55,88.6,88.65,88.7,88.75,88.8,88.85,88.9,88.95,89,89.05,89.1,89.15,89.2,89.25,89.3,89.35,89.4,89.45,89.5,89.55,89.6,89.65,89.7,89.75,89.8,89.85,89.9,89.95,90];

thetaColumn = 'Angle\n' + thetaColumn;
afAmpColumn = 'Field\n' + afAmpColumn;
dbColumn = 'db\n' + dbColumn;

//Create multi-dimensional array for the CSV file
var csvFileData = [
    thetaColumn,
    afAmpColumn,
    dbColumn
]; 

These arrays contain a lot of decimal values. The thetaColumn definition is just to show an example of the type of data I am dealing with. The way they are export currently looks like this:
Sample output image

I would instead like it to look something like this:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

Angle Field db
1 5 9
2 6 10
3 7 11
4 8 12

I am wondering how I would do this in the most efficient way since these arrays contain a lot of data. Any advice would be greatly appreciated!

>Solution :

I would suggest not to create the 2D array, but an object with key/array pairs, where the key is the column name.

Here is a function that will produce the CSV from such an object, and a run of it on sample data:

function toCsv(data) {
    const arrays = Object.values(data);
    return [Object.keys(data).join(","), ...arrays[0].map((row, i) =>
        arrays.map(column => column[i]).join(",")
    )].join("\n");
}

let theta = [1, 2, 3, 4];
let afAmp = [5, 6, 7, 8];
let db    = [9, 10, 11, 12];

// Create object, where keys are the column names
const data = { theta, afAmp, db };

// Produce CSV
const csv = toCsv(data);

console.log(csv);
 
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading