迹忆客 专注技术分享

当前位置:主页 > 学无止境 > WEB前端 > JavaScript >

在 JavaScript 中将 CSV 加载到数组

作者:迹忆客 最近更新:2023/03/10 浏览次数:

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

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

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

例如,

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

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

我们将使用 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() 函数与标题一起使用以创建一个对象,将行的值与必要的标题一起添加,并返回此对象。这个对象被添加到数组中。最后,我们返回最终的数组,它是一个对象数组。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Angular 中上传文件

发布时间:2023/04/14 浏览次数:71 分类:Angular

本教程演示了如何在 Angular 中上传任何文件。我们还将介绍如何在文件上传时显示进度条,并在上传完成时显示文件上传完成消息。

Angular 2 中的复选框双向数据绑定

发布时间:2023/04/14 浏览次数:139 分类:Angular

本教程演示了如何一键标记两个复选框。这篇有 Angular 的文章将着眼于执行复选框双向数据绑定的不同方法。

在 AngularJs 中加载 spinner

发布时间:2023/04/14 浏览次数:107 分类:Angular

我们将介绍如何在请求加载时添加加载 spinner,并在 AngularJs 中加载数据时停止加载器。

在 Angular 中显示和隐藏

发布时间:2023/04/14 浏览次数:78 分类:Angular

本教程演示了 Angular 中的显示和隐藏。在开发商业应用程序时,我们需要根据用户角色或条件隐藏一些数据。我们必须根据该应用程序中的条件显示相同的数据。

在 Angular 中下载文件

发布时间:2023/04/14 浏览次数:104 分类:Angular

本教程演示了如何在 angular 中下载文件。我们将介绍如何通过单击按钮在 Angular 中下载文件并显示一个示例。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便