Javascript Chrome RangeError:使用jQuery$.map时超出了最大调用堆栈大小
我正在为我的雇主测试一个web应用程序,它涉及从服务器检索大量数据。数据使用函数作为JSON对象返回,包含大量子对象,我使用jQuery函数将这些子对象转换为数组,如下所示Javascript Chrome RangeError:使用jQuery$.map时超出了最大调用堆栈大小,javascript,jquery,google-chrome,web-applications,browser,Javascript,Jquery,Google Chrome,Web Applications,Browser,我正在为我的雇主测试一个web应用程序,它涉及从服务器检索大量数据。数据使用函数作为JSON对象返回,包含大量子对象,我使用jQuery函数将这些子对象转换为数组,如下所示 data_points = $.map(result.data.LotsOfIt, function(value, ndx){ return value; }); //Throws Maximum call stack size exceeded with large data
data_points = $.map(result.data.LotsOfIt, function(value, ndx){
return value;
}); //Throws Maximum call stack size exceeded with large data set.
这似乎耗尽了Chromes堆栈大小限制,每次我运行这个函数Chrome都会抛出一个范围错误:超过了最大调用堆栈大小。如果我减少返回的数据量,它就可以正常工作。有趣的是FireFox和IE9可以很好地处理更大的数据集,但我认为Chrome的堆栈大小限制比这两种浏览器都大,所以我预计它们也会失败。还有其他人遇到过这个问题吗?有解决办法吗?或者我必须更新代码以限制返回的数据量以避免此错误?好的,因此在进行一些阅读之后,我怀疑问题与$.map实现中的递归调用有关,该调用导致Chrome浏览器堆栈溢出。我不得不重新编写代码,以非递归方式手动迭代返回的JSON对象集合。在对代码进行重构以对cone的整个集合使用$.map之后,堆栈溢出问题不再出现