首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将.csv文件加载到带有d3的交叉过滤器中?

如何将.csv文件加载到带有d3的交叉过滤器中?
EN

Stack Overflow用户
提问于 2017-05-26 03:08:45
回答 1查看 490关注 0票数 1

我正在尝试将一个.csv文件加载到交叉过滤器中,以便与dc.js和d3一起使用。但是,如果ndx = crossfilter(data_)不在d3.csv(...中,则无法工作。是否可以使用d3在全局/外部变量(在本例中为ndx)中加载数据?

代码语言:javascript
运行
AI代码解释
复制
 var ndx;

 private method(){

        var data_;

        d3.csv("samples.csv", function(data){

            var format = d3.timeParse("%m-%y"); 

            data.forEach(function(d: any) {
                d.date = format(d.date);
            });

            data_ = d3.csvParse(data);
        });

        ndx = crossfilter(data_);
}

如何将其加载到交叉过滤器中?我是否有义务在d3.csv(..调用中使用交叉过滤器?

解决方案:--我做了.csv --变成了一个.json,并且我“同步”加载了它。观察下面。

代码语言:javascript
运行
AI代码解释
复制
 var ndx;

 private method(){

        var data_ = (function() {
            var json: any = null;
            $.ajax({
                'async': false,
                'global': false,
                'url': "samples.json",
                'dataType': "json",
                'success': function (data:any) {
                    json = data;
                }
            });
            return json;
        })(); 

        ndx = crossfilter(data_);
}

观察:

‘异步’:假

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-26 04:26:41

这是因为回调函数在返回数据后被执行为asynchronously,。这意味着,如果将图表代码放在回调之外,将得到您定义的空数组,因为尚未返回任何数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44200020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档