2016-12-26 70 views
0

我试图修改一个数组以包含其他数组在内,我得到了最大调用堆栈大小超过,不知道为什么。阵列内最大调用堆栈大小超出阵列

app.selected.forEach(function(customer) { 
     app.dateInterval.forEach(function(dateint) { 
      customer[+dateint] = [] 

      app.eventsEmail.forEach(function(event) { 
       var date = event.Data; 
       date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0); 
       date = date.setDate(date.getDate() + 1); 

       if (event.IdCustomer == customer.IdCustomer && (+date) == (+dataint)) 
        customer[+dateint].push(event); 


      }); 
     }); 
    }); 

有人有任何想法如何解决?

+0

你debuged你的代码在浏览器devTools? – azad

+0

在.forEach()调用中两个嵌套的'.forEach()'调用的目的是什么? – guest271314

+2

没有理由为什么这会溢出调用堆栈。你可以添加所有这些被调用的代码吗?任何递归调用? – trincot

回答

0

,你可以这样做:

var size = app.selected.length; 
for(i=0;i<size;i++){ 
     var customer = app.selected[i]; 
     app.dateInterval.forEach(function(dateint) { 
      customer[+dateint] = [] 

      app.eventsEmail.forEach(function(event) { 
       var date = event.Data; 
       date = new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0); 
       date = date.setDate(date.getDate() + 1); 

       if (event.IdCustomer == customer.IdCustomer && (+date) == (+dataint)) 
        customer[+dateint].push(event); 


      }); 
     }); 
    }); 
} 
+0

这是如何解决问题的? **是什么问题? – 2016-12-26 19:16:22

+0

问题是你正在添加项目和长度增加,并有foreach ...无限循环 – Araz

相关问题