带有crossfilter和d3的dc.js,如何一次加载多个csv文件,而不知道用户将上传多少文件

时间:2017-09-25 00:37:06

标签: d3.js queue dc.js crossfilter

我知道一些答案可以处理多个csv文件,当你知道要上传多少个文件时。

这是逐个获取文件名的代码,并将文件放入队列。

var q = queue();
$('#files').change(function(){
    var fileNames = "";
    for(var i = 0; i < this.files.length; i++){
        fileNames += ", " + this.files[i].name;
        .defer(d3.csv, this.files[i].name);
    }
}

我的问题是如何循环队列中的数据并将其添加到交叉过滤器中。

q.await(function(error, q1data, q2data) {}

如何查看队列内部的内容,使用Google Chrome的开发者工具。

我见过一个例子https://github.com/dc-js/dc.js/blob/master/web/examples/composite.html

但是当你知道有多少文件时,这个只会处理。

这是一个类似的问题,但这不是我想要的。 Loading multiple CSV in DC.js, adding a value, and concatenating the results into a single dataTable

1 个答案:

答案 0 :(得分:1)

你需要使用&#34; awaitAll&#34;而不是&#34; await&#34;,因为&#34;回调(错误,文件){}&#34; function将包含您作为数组上传的所有文件。

Here是帮助文档和demo