javascript - 在 Javascript 中导入多个 CSV 文件

标签 javascript csv d3.js

我需要将 8-10 个 CSV 文件导入到一些 JS 代码中。每个文件大约有 8 个不同的列。我想将此信息存储在一个对象中(可能根据 ID 字段之一识别该对象)。问题是,我能想到的最简单的方法如下:

var authorArr = [];
d3.csv("data/authors.csv", function(csv) {
    csv.forEach(function(d) {
    authorArr[d.record_id] = [];
    d.record_id = +d.record_id;
    d.name = d.name
    d.name_inverted = d.name_inverted;
    d.role = d.role;
    d.sequence = +d.sequence;
    d.is_person = d.is_person;

    authorArr[d.record_id] = d.name;
    authorArr[d.record_id] = d.role;
    etc...

当然这不是最快的方法...而且,还有相当多的重复的 record_id 值,所以每次重复时,我都会用我可怕的方法丢失所有以前的数据。

我不确定这是否足够详细。如果没有,我很乐意添加更多内容。

最佳答案

您可以为新/当前记录使用临时变量。您的示例看起来也不需要数组(有间隙)而是 map 。这是我加载数据的方式:

var authorMap = {}

var loadCSV = function(file){
    d3.csv(file, function(error, data) {
        data.forEach(function(d) {
            var a = authorMap[d.record_id] = {}
            a.record_id = d.record_id
            a.name      = d.name
            a.role      = d.role
        });
    });
}

loadCSV("file1.csv")
loadCSV("file2.csv")

关于javascript - 在 Javascript 中导入多个 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13053935/

相关文章:

javascript - 给没有id的div添加id

javascript - jquery 移动面板事件未触发

javascript - 将点击事件监听器绑定(bind)到 map 标记(使用D3和JS)

csv - 通过 Apache-Spark 从 AWS S3 加载数据

python - 将与打印命令相同的内容保存到 .csv 文件

javascript - D3 'Drag' 即使鼠标不移动也会触发事件

javascript - 将分层 JSON 转换为flare.json 格式,以便在双层分区中使用

javascript - 如何在选择选项值上创建 x 数量的 div

javascript - 如何在 Typed JS 中永久隐藏光标

php - 允许用户将 "Tab-delimited"数据粘贴到文本区域中