Преобразование CSV в массив
Для преобразования строки с данными в формате CSV (comma-separated values) в двумерный массив следуйте шагам:
- Откройте Терминал/SSH и введите
node
, чтобы начать программирование.
- Используйте
Array.prototype.indexOf()
, чтобы найти первый символ новой строки (\n
).
- Используйте
Array.prototype.slice()
, чтобы удалить первую строку (заголовочную строку), если omitFirstRow
установлен в true
.
- Используйте
String.prototype.split()
, чтобы создать строку для каждой строки.
- Используйте
String.prototype.split()
, чтобы разделить значения в каждой строке с использованием заданного delimiter
.
- Если вы не указываете второй аргумент,
delimiter
, по умолчанию будет использоваться разделитель ','
.
- Если вы не указываете третий аргумент,
omitFirstRow
, в массив будет включена первая строка (заголовочная строка) CSV-строки.
Вот код для преобразования 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']];