2017-01-11 123 views
0

我试图将我自己的数据加载到此d3.js可视化中,但我不断收到错误Undefined is not a function。唯一的区别是,而不是定义freqData像他们那样,我定义我的从数据文件未定义不是函数错误d3js

var freqData = d3.json("//sjs72/Users/ksdf/file.json", function(fdata) { 
    console.log(fdata[0]); 
}); 

它发生在该行加载

fData.forEach(function(d){d.total=d.freq.low+d.freq.mid+d.freq.high;}); 

谁能帮我明白的地方我错了吗?

编辑:我做的电话是仪表板('#仪表板',freqData);该功能仪表盘采用的参数FDATA,在这种情况下我加载freqData到

更新:

我改变了我的变量定义和生成的代码看起来像

var freqData; 
    function doSomethingWithData() { 
    console.log(freqData); 
} 

d3.json("//sjs72/Users/ksdf/file.json", function(dataFromServer) { 
    freqData = dataFromServer; 
    doSomethingWithData(); 
} 

dashboard('#dashboard',freqData); 

但现在我米刚开错误

Uncaught SyntaxError: Unexpected identifier 

在我的脚本的最后一行

+0

是你说的那一行错误发生在'freqData'函数内部?根据错误,'fData'是未定义的。设置一个断点,看看发生了什么。 – krillgar

+0

是因为你将数据分配给'freqData'然后尝试引用'fData'? – nvioli

+2

你的假设是错误的:''d3.json()'是一个异步函数,它不返回一个值。请参阅[*“从d3.json()”*](/ q/12656580)返回数组。 – altocumulus

回答

1

您错过了d3.json()呼叫的右括号。这很可能会给你带来问题。更正后的代码:

var freqData; 
    function doSomethingWithData() { 
    console.log(freqData); 
} 

d3.json("//sjs72/Users/ksdf/file.json", function(dataFromServer) { 
    freqData = dataFromServer; 
    doSomethingWithData(); 
    } 
); // Added this here 
dashboard('#dashboard',freqData); 
相关问题