What causes the "Uncaught RangeError: Maximum call stack size exceeded" and how to remove it?
What causes the "Uncaught RangeError: Maximum call stack size exceeded" and how to remove it?
我正在使用 ajax 中的数据创建交叉过滤器维度。创建维度变量的正确方法是什么?
var url = "http://" + window.location.host + "/twitter-data";
$.ajax({
url: url,
async: false,
success: function(data) {
makeGraphs(data);
}
});
function makeGraphs(records){
var dateFormat = d3.time.format("%Y-%m-%dT%H:%M:%S+%H:%M");
var data = records.map(obj => {
var res = dateFormat.parse(obj._source.published)
return res;
});
console.log(data[0]);
//Crossfilter
var ndx = crossfilter(data);
var all = ndx.groupAll
//Dimensions
var hashtagDim = ndx.dimension( function (d) {return d.hashtags; }, true);
'
控制台上的错误如下所示:
Uncaught RangeError: Maximum call stack size exceeded
at quicksort (crossfilter.js:172)
at sort (crossfilter.js:169)
然后就这样继续下去。
代码片段的最后一行产生错误。我看到的解决方案说这是一个递归函数调用,但我不确定我需要更改代码以避免此错误。
您确定您的数据元素上有“标签”属性吗?
通常,当我使用交叉过滤器 运行 遇到相同的错误时,这是因为我一直在尝试使用不存在的 属性(即值函数 returns undefined
)。对 属性 使用错误的大小写也会导致 undefined
return 值,因为属性区分大小写。
通常,维度(或组)值函数可能永远不会 return NaN
、undefined
或 null
:Natural ordering of dimension and group values.
一个可能的根本原因是,如果您在 AJAX 请求完成之前启动交叉过滤器。但这只是猜测,因为我对你的代码了解不够。
我正在使用 ajax 中的数据创建交叉过滤器维度。创建维度变量的正确方法是什么?
var url = "http://" + window.location.host + "/twitter-data";
$.ajax({
url: url,
async: false,
success: function(data) {
makeGraphs(data);
}
});
function makeGraphs(records){
var dateFormat = d3.time.format("%Y-%m-%dT%H:%M:%S+%H:%M");
var data = records.map(obj => {
var res = dateFormat.parse(obj._source.published)
return res;
});
console.log(data[0]);
//Crossfilter
var ndx = crossfilter(data);
var all = ndx.groupAll
//Dimensions
var hashtagDim = ndx.dimension( function (d) {return d.hashtags; }, true);
'
控制台上的错误如下所示:
Uncaught RangeError: Maximum call stack size exceeded
at quicksort (crossfilter.js:172)
at sort (crossfilter.js:169)
然后就这样继续下去。
代码片段的最后一行产生错误。我看到的解决方案说这是一个递归函数调用,但我不确定我需要更改代码以避免此错误。
您确定您的数据元素上有“标签”属性吗?
通常,当我使用交叉过滤器 运行 遇到相同的错误时,这是因为我一直在尝试使用不存在的 属性(即值函数 returns undefined
)。对 属性 使用错误的大小写也会导致 undefined
return 值,因为属性区分大小写。
通常,维度(或组)值函数可能永远不会 return NaN
、undefined
或 null
:Natural ordering of dimension and group values.
一个可能的根本原因是,如果您在 AJAX 请求完成之前启动交叉过滤器。但这只是猜测,因为我对你的代码了解不够。