Introduction
In this lab, we will explore how to convert comma-separated values (CSV) data into a 2D array using JavaScript. We will use the CSVToArray() function which takes a CSV string as input and converts it into an array of arrays. This lab will help you understand how to work with CSV data and manipulate it using JavaScript.
Converting CSV to an Array
To convert a comma-separated values (CSV) string to a 2D array, follow these steps:
- Open the Terminal/SSH and type
nodeto start coding. - Use
Array.prototype.indexOf()to locate the first newline character (\n). - Use
Array.prototype.slice()to remove the first row (title row) ifomitFirstRowis set totrue. - Use
String.prototype.split()to create a string for each row. - Use
String.prototype.split()to separate the values in each row using the provideddelimiter. - If you don't provide the second argument,
delimiter, the default delimiter of','will be used. - If you don't provide the third argument,
omitFirstRow, the first row (title row) of the CSV string will be included.
Here's the code to convert CSV to an array:
const CSVToArray = (data, delimiter = ",", omitFirstRow = false) =>
data
.slice(omitFirstRow ? data.indexOf("\n") + 1 : 0)
.split("\n")
.map((v) => v.split(delimiter));
You can use the following examples to test the function:
CSVToArray("a,b\nc,d"); // [['a', 'b'], ['c', 'd']];
CSVToArray("a;b\nc;d", ";"); // [['a', 'b'], ['c', 'd']];
CSVToArray("col1,col2\na,b\nc,d", ",", true); // [['a', 'b'], ['c', 'd']];
Summary
Congratulations! You have completed the CSV to Array lab. You can practice more labs in LabEx to improve your skills.