Array to CSV

Beginner

This tutorial is from open-source community. Access the source code

Introduction

In this lab, we will explore how to use JavaScript to convert a 2D array to a comma-separated values (CSV) string. The lab will guide you through the process of using Array.prototype.map() and Array.prototype.join() to create a CSV string from a 2D array. By the end of the lab, you will have a solid understanding of how to convert arrays into CSV strings using JavaScript.

Convert 2D Array to CSV

To convert a 2D array to a comma-separated values (CSV) string, follow these steps:

  1. Open the Terminal/SSH and type node to start practicing coding.
  2. Use Array.prototype.map() and Array.prototype.join() to combine individual 1D arrays (rows) into strings, using the provided delimiter.
  3. Use Array.prototype.join() to combine all rows into a CSV string, separating each row with a newline (\n).
  4. If you want to use the default delimiter of ,, omit the second argument, delimiter.

Here is an example of the code:

const arrayToCSV = (arr, delimiter = ",") =>
  arr
    .map((v) =>
      v
        .map((x) => (isNaN(x) ? `"${x.replace(/"/g, '""')}"` : x))
        .join(delimiter)
    )
    .join("\n");

You can test the function by running the following lines of code:

arrayToCSV([
  ["a", "b"],
  ["c", "d"]
]); // '"a","b"\n"c","d"'
arrayToCSV(
  [
    ["a", "b"],
    ["c", "d"]
  ],
  ";"
); // '"a";"b"\n"c";"d"'
arrayToCSV([
  ["a", '"b" great'],
  ["c", 3.1415]
]);
// '"a","""b"" great"\n"c",3.1415'

Summary

Congratulations! You have completed the Array to CSV lab. You can practice more labs in LabEx to improve your skills.