chrome中超过最大调用堆栈大小,IE中超出堆栈空间(JavaScript)
我有这样一个递归方法:chrome中超过最大调用堆栈大小,IE中超出堆栈空间(JavaScript),javascript,jquery,Javascript,Jquery,我有这样一个递归方法: PrintRecursive = function (arr, level) { for (var key in arr) { var term = arr[key]; htmlArr.push("<li><input type=\"radio\" name=\"tempName\" id=\"" + term.Id + "\" data-taxonomy-url=\"" + term.Url + "\" />
PrintRecursive = function (arr, level) {
for (var key in arr) {
var term = arr[key];
htmlArr.push("<li><input type=\"radio\" name=\"tempName\" id=\"" + term.Id + "\" data-taxonomy-url=\"" + term.Url + "\" /><label for=\"" + term.Id + "\">" + term.Title + "</label>");
if (term.ChildTerms !== undefined && term.ChildTerms != null) {
htmlArr.push("<ul>");
PrintRecursive(term.ChildTerms, ++level);
level--;
htmlArr.push("</ul>");
htmlArr.push("</li>");
}
else {
htmlArr.push("</li>");
}
}
}
PrintRecursive=函数(arr,级别){
for(arr中的var键){
var项=arr[键];
htmlar.push(“”+term.Title+”);
if(term.ChildTerms!==undefined&&term.ChildTerms!=null){
htmlar.push(“”);
PrintRecursive(term.ChildTerms,++level);
级别--;
htmlar.push(“
”);
htmlar.push(“ ”);
}
否则{
htmlar.push(“”);
}
}
}
它在IE中生成超出堆栈空间
,并且在Chrome中尝试执行htmlar.push时超过了最大调用堆栈大小
。arr是数组的数组,但arr中的项目总数为385项。
我是否因为使用了被调用次数过多的递归方法而出现此错误?还是因为HTMLAR包含太多数据(html) 这意味着您的递归函数达到了浏览器特定的调用堆栈限制 要修复此问题并获取更多信息,请查看以下帖子: