我有一个可能包含对象或可能 undefined variable 。我希望向此变量添加其他对象。我该怎么做?
适用时的代码示例:
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;}(),
最佳答案
测试它是否未定义,如果是,则将其分配给一个空对象:
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
语句中。)
关于javascript - 在javascript中向变量添加额外的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11109581/