控制台说找不到变量

Console says cannot find a variable

我声明了一个变量 circles 但不知何故它没有在这里被访问(靠近文件底部)

circles.filter(function(d, i){
               return d.species == species
                }) 

我的控制台显示找不到变量:circles。我是 d3.js 和 javascript 的新手,非常感谢您的帮助!

http://jsfiddle.net/flyingburrito/gacbucyo/9/

问题是您在 d3.csv(...) 调用中定义 circles,但随后在单独的 d3.selectAll(...) 调用中引用它。因此 circles 没有为 d3.selectAll(...) 定义,因为它超出了范围。尝试通过在 JSFiddle 的顶部定义它来使 circles 成为全局变量。然后,在不使用 var:

的情况下对其进行初始化
circles = svg.selectAll("circle").data(data)

进行此修复后,我不再有错误并且可以过滤圈子。参见 updated JSFiddle here

Circles 不是全局变量,因此您在文件末尾看不到它。在顶部定义它,就像您拥有其他(svg、数据、..)一样,然后您就可以访问它了。