2014-04-01 87 views
1

我遇到了麻煩數組中的數組是空的。如何用jQuery .each()處理空對象?

我得到兩個數組,我推入一個新的,所以我可以使用jQuery .each()與新的數組。新的陣列可以具有不同的狀態:

包含空數組:

nextEvent = [[ ], [ ]] 

含有包含每一個對象兩個完整的陣列:

nextEvent = [[object], [object]] 

或含有一個完整的陣列與一個對象:

nextEvent = [[object], [ ]] 
nextEvent = [[ ], [object]] 

現在我試圖使用.each()在nextEvent,或將現有對象數據追加到元素。

到目前爲止,我得到了一個函數,它看起來像這樣:

$.each(nextEvent, function(i, n){   
    if (nextFeedingTime || nextShowTime){      
     var time = n[0].Time.toString();     
     //... 
     if (nextFeedingTime && nextShowTime){ 
      if (n[0].Kategorie === "Fütterung"){ 
       appendFeeding();      
      } else {       
       appendShow();    
      } 
     } else if (nextFeedingTime && !nextShowTime){     
      appendFeeding(); 
     } else if (!nextFeedingTime && nextShowTime){ 
      appendShow(); 
     } 
    } else { 
     //... 
    }  
}); 

注:nextFeedingTimenextShowTime是我最初推入nextEvent

此功能工作的陣列,但只要一個數組是空的我得到一個n[0] is undefined錯誤。任何想法如何解決這一問題?對於不確定的檢查

if(n[0] !== undefined) 

檢查,並着手:

回答

3

添加此。

+0

然後該函數在'nextEvent = [[],[object]]'的情況下不起作用,因爲沒有定義第一個'n [0]'。我仍然需要它來使用第二個對象。 –

+2

@kvothe將通過'$ .each'的下一次迭代來處理。 –

+0

@KevinB你是對的,在我的代碼的其他地方發現了錯誤。 @ jp310謝謝,我加了'if(n [0])'這可能是最簡單的方法 –