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" };

編集:OK、質問にコードを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したがって、ソース データのコメントごとに 1 つの要素が含まれます。コメントがない場合は、空の配列になります。(コメントがない場合に戻りたい場合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 に答える