“超出最大调用堆栈大小”crossfilter

时间:2016-01-31 21:43:42

标签: csv d3.js crossfilter

我正在尝试使用crossfilter在地图上显示相对较小的.csv文件。

这是网站的live version,出于开发目的,我在localhost上运行相同的代码。

当我使用this file时,( 3037 行)一切都运行良好,但是当我切换到a file just flightly larger 3,871 行)时崩溃。

我想也许这与我的数据中的胭脂&字符有关,但那不是它!

任何人都可以找出问题所在吗?

它与尺寸有关吗?

它不认为可能是 - 因为我有一个更大的文件和crossfilter工作得很好。

我真的看不出这两个文件之间有什么实质性区别!

1 个答案:

答案 0 :(得分:2)

您正在定义这样的尺寸:

var countries = data.dimension(function (d) {
    return d["Country"];
});

问题几乎可以肯定是数据集中的某个位置,其中一个维度访问器返回undefined值。这打破了维度访问者must always return naturally ordered values的规则。您应该对维度访问器进行少量更改,并始终返回相同类型的值。对于字符串:

var countries = data.dimension(function (d) {
    return d["Country"] ? d["Country"] : "";
});

对于数字:

var countries = data.dimension(function (d) {
    return d["Country"] ? d["Country"] : 0;
});

您使用的确切访问者取决于您的数据结构,但希望这会有所帮助。我确定在您添加的其他记录中,您在某处有一些空字段。