Преобразование CSV в массив

Beginner

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

Введение

В этом практическом занятии мы изучим, как преобразовать данные в формате CSV (comma-separated values) в двумерный массив с использованием JavaScript. Мы будем использовать функцию CSVToArray(), которая принимает CSV-строку в качестве входных данных и преобразует ее в массив массивов. Это практическое занятие поможет вам понять, как работать с данными в формате CSV и манипулировать ими с использованием JavaScript.

Преобразование CSV в массив

Для преобразования строки с данными в формате CSV (comma-separated values) в двумерный массив следуйте шагам:

  1. Откройте Терминал/SSH и введите node, чтобы начать программирование.
  2. Используйте Array.prototype.indexOf(), чтобы найти первый символ новой строки (\n).
  3. Используйте Array.prototype.slice(), чтобы удалить первую строку (заголовочную строку), если omitFirstRow установлен в true.
  4. Используйте String.prototype.split(), чтобы создать строку для каждой строки.
  5. Используйте String.prototype.split(), чтобы разделить значения в каждой строке с использованием заданного delimiter.
  6. Если вы не указываете второй аргумент, delimiter, по умолчанию будет использоваться разделитель ','.
  7. Если вы не указываете третий аргумент, 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']];

Резюме

Поздравляем! Вы завершили практическое занятие по преобразованию CSV в массив. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.