Javascript 未定义不是函数错误d3js
我试图将我自己的数据加载到这个d3.js可视化中,但我不断得到错误Javascript 未定义不是函数错误d3js,javascript,d3.js,Javascript,D3.js,我试图将我自己的数据加载到这个d3.js可视化中,但我不断得到错误未定义不是一个函数。唯一的区别是,我没有像他们那样定义freqData,而是定义了从数据文件加载我的 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.mi
未定义不是一个函数。唯一的区别是,我没有像他们那样定义freqData
,而是定义了从数据文件加载我的
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;});
谁能帮我理解我哪里出了问题
编辑:我打的电话是dashboard(“#dashboard”,freqData);函数dashboard接受参数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
在我脚本的最后一行中,您的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);
您所说的错误是发生在函数内部的freqData
?根据错误,fData
未定义。插入一个断点,看看发生了什么。这是因为您将数据分配给freqData
,然后尝试引用fData
?您的假设是错误的:d3.json()
是一个异步函数,它不返回值。看见