1

我有一个可能包含对象或未定义的变量。我希望向此变量添加其他对象。我怎么做?

适用时的代码示例:

function(){ 
    var comments;
    if(fbposts[fbpost].comments.count){
        for(var comment in fbposts[fbpost].comments.data){
                comments = ({
                    name: fbposts[fbpost].comments.data[comment].from.name,
                    link: "http://www.facebook.com/"+fbposts[fbpost].comments.data[comment].from.id,
                    img: "http://www.facebook.com/"+fbposts[fbpost].comments.data[comment].from.id+"/picture",
                    message: fbposts[fbpost].comments.data[comment].message,
                    created: timeDifference(Date.parse(fbposts[fbpost].comments.data[comment].created_time)),
                })
            }

    }
    return comments;}(),
4

2 回答 2

2

测试它是否未定义,如果是,则将其分配给一个空对象:

if (typeof yourVar === "undefined")
    yourVar = {};

yourVar.additionalObject1 = { something : "test" };
yourVar.additionalObject2 = { something : "else" };

编辑:好的,既然您已经在问题中添加了代码,那么您的变量似乎comments应该是一个数组,因为您是在循环中添加它的。所以我认为你想做这样的事情:

(function(){ 
    var comments = [];
    if(fbposts[fbpost].comments.count){
        for(var comment in fbposts[fbpost].comments.data){
                comments.push({
                    name: fbposts[fbpost].comments.data[comment].from.name,
                    link: "http://www.facebook.com/"+fbposts[fbpost].comments.data[comment].from.id,
                    img: "http://www.facebook.com/"+fbposts[fbpost].comments.data[comment].from.id+"/picture",
                    message: fbposts[fbpost].comments.data[comment].message,
                    created: timeDifference(Date.parse(fbposts[fbpost].comments.data[comment].created_time)),
                });
         }    
    }
    return comments;
})();

comments因此,将为您的源数据中的每个评论包含一个元素。如果没有评论,它将是一个空数组。undefined(如果您希望它在没有注释的情况下返回,则将变量声明保留在原处并在语句中var comments添加。)comments=[];if

于 2012-06-19T21:20:21.117 回答
0

如果您使用的是 jQuery(为什么不使用?),那么您想看看$.extend()

http://api.jquery.com/jQuery.extend/

于 2012-06-19T21:21:12.160 回答