在 JavaScript 中将 CSV 加载到数组

Siddharth Swami 2023年1月30日 2021年10月2日
  1. 使用 jQuery-csv 插件将 CSV 加载到 JavaScript 中的数组
  2. 在 JavaScript 中创建一个用户定义的函数以将 CSV 加载到数组
在 JavaScript 中将 CSV 加载到数组

CSV 是一个文本文件。它使用逗号作为分隔符来分隔不同的值。

在本文中,我们将使用 JavaScript 将 CSV 文件加载到数组中。

使用 jQuery-csv 插件将 CSV 加载到 JavaScript 中的数组

jQuery 库提供了 jquery-csv 插件,可以将 CSV 文件读入数组。

例如,

array = $.csv.toArrays(csv, {
  delimiter: "'", 
  separator: ';', // Sets a custom field separator character
});

我们可以使用 delimiterseparator 属性设置自定义分隔符和分隔符。最终结果存储在一个数组中。

在 JavaScript 中创建一个用户定义的函数以将 CSV 加载到数组

我们将使用 FileReader 类将所需的 CSV 文件作为字符串读取。要将其存储到数组中,我们将使用 slice()split()map() 函数。slice() 函数有助于返回一个新数组,其中包含实现它的旧数组的一部分。map() 函数通过提供为数组中的每个元素提供的函数来帮助返回一个新数组。split() 函数使用指定的分隔符帮助将字符串拆分为数组形式的子字符串。

请参考下面的代码。

function csv_To_Array(str, delimiter = ",") {
      const header_cols = str.slice(0, str.indexOf("\n")).split(delimiter);
      const row_data = str.slice(str.indexOf("\n") + 1).split("\n");
      const arr = row_data.map(function (row) {
        const values = row.split(delimiter);
        const el = header_cols.reduce(function (object, header, index) {
          object[header] = values[index];
          return object;
        }, {});
        return el;
      });

      // return the array
      return arr;
    }

我们假设文件的第一行包含标题。slice() 函数从开头开始到第一个 \n 索引,并使用 split() 函数根据分隔符将字符串拆分为数组。同样,我们使用这两个函数来存储行。接下来,我们将行映射到数组。我们使用 map() 函数将行的每个值拆分为一个数组。reduce() 函数与标题一起使用以创建一个对象,将行的值与必要的标题一起添加,并返回此对象。这个对象被添加到数组中。最后,我们返回最终的数组,它是一个对象数组。

相关文章 - JavaScript Array