CSV to array

OSCC · JavaScript, String, Array · Jan 30, 2022

Converts a comma-separated values (CSV) string to a 2D array.

  • Use Array.prototype.indexOf() to find the first newline character (\n).
  • Use Array.prototype.slice() to remove the first row (title row) if omitFirstRow is true.
  • Use String.prototype.split() to create a string for each row.
  • Use String.prototype.split() to separate the values in each row, using the provided delimiter.
  • Omit the second argument, delimiter, to use a default delimiter of ','.
  • Omit the third argument, omitFirstRow, to include the first row (title row) of the CSV string.
const CSVToArray = (data, delimiter = ',', omitFirstRow = false) =>
  data
    .slice(omitFirstRow ? data.indexOf('\n') + 1 : 0)
    .split('\n')
    .map(v => v.split(delimiter));
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']];

Recommended snippets

  • CSV to JSON

    JavaScript, String

    Converts a comma-separated values (CSV) string to a 2D array of objects. The first row of the string is used as the title row.

  • Array to CSV

    JavaScript, Array

    Converts a 2D array to a comma-separated values (CSV) string.

  • JSON to CSV

    JavaScript, Array

    Converts an array of objects to a comma-separated values (CSV) string that contains only the columns specified.