2012-06-19 3 views
1

У меня есть переменная, которая может содержать объекты или может быть неопределенной. Я хочу добавить дополнительные объекты к этой переменной. Как мне это сделать?Добавить дополнительный объект в переменную в javascript?

пример кода, когда это применимо:

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;}(), 

ответ

2

тест, если он не определен, и если да назначить его на пустой объект:

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

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

EDIT: ОК, теперь, когда вы добавили код на ваш вопрос, кажется, что ваша переменная 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 заявления.)

+0

Я не хочу называть объекты. Это возможно? – Himmators

+0

Теперь я обновил свой ответ, добавив код на ваш вопрос. Я думаю, что вы хотите, чтобы 'comments' был массивом. – nnnnnn

+0

Да! Это звучит правильно! – Himmators

0

Если вы используете JQuery (и почему бы не вы быть?), то вы хотите посмотреть на $.extend()

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

+0

Тег jQuery не найден. –

+0

@ Derek, что вы имеете в виду? – Himmators

+0

@KristofferNolgren - Если вы хотите jQuery в ответах, вы можете пометить 'jQuery' в своем вопросе. –

Смежные вопросы