CSV转为数组
将逗号分隔值(CSV)字符串转换为二维数组。
- 使用
Array.prototype.indexOf()
找到第一个换行符(\n
)的位置。 - 使用
Array.prototype.slice()
删除第一行(标题行),如果omitFirstRow
为true
。 - 使用
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']];