Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome RangeError:使用jQuery$.map时超出了最大调用堆栈大小_Javascript_Jquery_Google Chrome_Web Applications_Browser - Fatal编程技术网

Javascript Chrome RangeError:使用jQuery$.map时超出了最大调用堆栈大小

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

我正在为我的雇主测试一个web应用程序,它涉及从服务器检索大量数据。数据使用函数作为JSON对象返回,包含大量子对象,我使用jQuery函数将这些子对象转换为数组,如下所示

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之后,堆栈溢出问题不再出现