CSV转为数组

将逗号分隔值(CSV)字符串转换为二维数组。

  • 使用Array.prototype.indexOf()找到第一个换行符(\n)的位置。
  • 使用Array.prototype.slice()删除第一行(标题行),如果omitFirstRowtrue
  • 使用String.prototype.split()将字符串拆分为每一行。
  • 使用提供的delimiter参数,使用String.prototype.split()将每一行的值分隔开。
  • 如果省略第二个参数delimiter,则使用默认的分隔符,
  • 如果省略第三个参数omitFirstRow,则包含CSV字符串的第一行(标题行)。
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']];