d3.js变量未定义,但在Firefox控制台中,它可以工作
d3.js variable not defined, yet in Firefox console, it works
>我正在尝试读取一些csv数据,选择一个特定的列(SST),并创建一个数组,其中每个项目是:{ x:row#,y:SST_for_that_row }。
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
var dat=[];
d3.csv("stratus2.txt", function(t) {
dat = t;
});
f=dat.map(function(d,i) {
return {x:i,y:d.SST}
</script>
我的 Firefox 控制台显示"dat"变量已成功加载,但"f"为空。 但是,如果我直接在控制台中键入以下内容,它会加载正常。
f=dat.map(function(d,i) {
return {x:i,y:d.SST}
是否存在某种范围界定问题?提前感谢,本
我认为您在保留地图并返回 csv 回调时遇到了问题。 正在发生的事情是你的csv
代码还没有完成(dat 没有设置为 t),但回调不会阻塞(d3.csv() 是异步的),所以你的 javascript 继续运行,留下一个空的映射。
<script src="http://d3js.org/d3.v3.min.js"></script>
<script>
var dat=[];
d3.csv("stratus2.txt", function(t) {
dat = t;
f=dat.map(function(d,i) {
return {x:i,y:d.SST};
});
});
</script>
尝试这种方式,并查看Javascript同步与异步以获取更多信息。
这在控制台中起作用的原因是,当您输入这些代码行时,您的回调已经处理完毕,因此dat
确实具有分配的值。
相关文章:
- 只有当Javascript控制台在chrome上打开时,Javascript才能工作
- 控制台.log在 setInterval 中无法为 Tampermonkey 工作
- 如何让JavaScript控制台用户输入工作(node.js)
- 当控制台不在't在chrome中打开,有些项目不再可点击(有些js调用停止工作)
- addEventListener工作's,但控制台发送警告
- 登录控制台可以工作,但会立即导致TypeError
- ActiveX 仅在激活 IE 9 控制台时工作
- 无法获得控制台.log在 CasperJS 中评估内部工作
- 火狐插件控制台.log() 不工作
- Chrome - JavaScript 控制台无法正常工作
- JS仅在控制台.log之后工作
- javascript 的 document.getElementById 返回 null,但从控制台工作
- 为什么控制台.log在JSC环境中不起作用,但它可以在Safari的调试控制台中工作
- 我无法让它作为 JavaScript 函数工作(我在控制台时得到我想要的返回值.log但我不能将其作为函数调用)
- Firefox/Firebug JavaScript 控制台.log在某些情况下无法在 for 循环中工作
- ngRoute不工作,但没有向控制台报告错误
- 如何从控制台调用该方法以查看其工作情况
- setTimeout不工作.控制台显示未定义latLng
- 幻灯片停止工作控制台显示没有相关错误?但是这个无关
- Javascript 在控制台中工作,但不在脚本标签内工作.控制台的上下文是什么