javascript - 用js加载本地.csv,用d3.js处理

标签 javascript html d3.js

我坚持以下几点。 我没有正在运行的本地 http 服务,所以我想以其他方式处理我的文件加载。

首先,我按照一些引用资料中的建议创建了以下函数。

var fileArray = [];
function readSingleFile(evt) {
    //Retrieve the first (and only!) File from the FileList object
    var f = evt.target.files;
        window.array = []
        if (f) {
            var r = new FileReader();
                r.onload = function(e) { 
                var contents = e.target.result;
                window.array.push(contents);
                fileArray.push({name:f.name, contents: contents});
                }
                r.readAsText(f);
                console.log(fileArray);
                } else { 
                    alert("Failed to load file");
                }
            }
            document.getElementById('fileinput').addEventListener('change', readSingleFile, false);

然后我尝试在 d3.csv 函数中调用 fileArray。但这就是我卡住的地方——控制台日志只显示一个空数组。

var dataset = []
                    d3.csv(fileArray, function(data) {
                    dataset = data.map(function(d) { return [ d["TEXT"], +d["HOURS"], +d["MONTH_DIGIT"] ]; });
                    console.log(dataset)
                });

.csv 文件具有以下结构。

"TEXT","HOURS","MONTH_DIGIT"
"Adjustments work",849.45,"01"

我如何准确地调用该文件以使用 d3.js?

最佳答案

如果你想“获取文件及其内容并使用它”,你可以在 d3.csv() 方法中加载文件,在回调之后应用你的更改想做的内容。

d3.csv('/path/to/myfile.csv, function(data) {
    // Modify the files data
    ...
    // Do something with d3.js
});

关于javascript - 用js加载本地.csv,用d3.js处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18188823/

相关文章:

javascript - AngularJS 选择带有 id 和数组索引的选项

javascript - 禁用发布表单的一个表单元素的发布

html - 如何在 bootstrap 4 中正确对齐一系列图像?

javascript - 更改 c3.js 散点图中气泡的大小

javascript - 仅在特定 div 上单击事件

javascript - Papaparse 对奇怪字符的正确编码

javascript - 加载大量图像而不卡顿的最佳方式。

HTML/CSS : two block divs one scrolling and one growing confined by parent

javascript - 在 D3 可缩放森伯斯特中,如何根据缩放级别制作标签?

javascript - 将 Dynamic Attr() 添加到 d3.tip