CSV to Array

JavaScriptJavaScriptBeginner
Practice Now

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

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("`Higher-Order Functions`") subgraph Lab Skills javascript/variables -.-> lab-28229{{"`CSV to Array`"}} javascript/data_types -.-> lab-28229{{"`CSV to Array`"}} javascript/arith_ops -.-> lab-28229{{"`CSV to Array`"}} javascript/comp_ops -.-> lab-28229{{"`CSV to Array`"}} javascript/higher_funcs -.-> lab-28229{{"`CSV to Array`"}} end

Converting CSV to an Array

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

  1. Open the Terminal/SSH and type node to start coding.
  2. Use Array.prototype.indexOf() to locate the first newline character (\n).
  3. Use Array.prototype.slice() to remove the first row (title row) if omitFirstRow is set to true.
  4. Use String.prototype.split() to create a string for each row.
  5. Use String.prototype.split() to separate the values in each row using the provided delimiter.
  6. If you don't provide the second argument, delimiter, the default delimiter of ',' will be used.
  7. 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.

Other JavaScript Tutorials you may like