如何使用jQuery .each()处理空对象?

时间:2014-04-01 15:06:15

标签: javascript jquery arrays object each

我遇到了麻烦,数组中的数组是空的。

我有两个数组,我推入一个新数组,所以我可以使用jQuery .each()和新数组。新数组可以有不同的状态:

包含空数组:

nextEvent = [[ ], [ ]]

包含两个完整数组,每个数组包含一个对象:

nextEvent = [[object], [object]]

或包含一个包含一个对象的完整数组:

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

现在我尝试在nextEvent上使用.each(),以便将现有对象数据附加到元素。

到目前为止,我有一个看起来像这样的功能:

$.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错误。任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

添加:

if(n[0] !== undefined)

检查未定义的检查并继续。

答案 1 :(得分:0)

更简单的方法,而不检查' undefined'

if(!n[0]){ }