2017-08-29 5 views
-1

私はJSONからいくつかのデータを取得しようとしていますならば、これは変数のスコープの文

var process_data = function(data) { 
    var object = {}; 
    object.date = data.created_at; 
    object.text = data.text; 
    object.name = data.user.name; 
    object.screen_name = data.user.screen_name; 
    object.imgURL = data.user.profile_image_url; 
    object.media = {}; 


    if (data.entities.media != undefined) { 
     object.media.url = data.entities.media[0].media_url; 
     // CONSOLE LOG WORKS HERE 
     //console.log(object.media.url); 

    } else { 
     object.media = 'images/1500x500.jpeg' 
    } 
    // CONSOLE LOG HERE IS UNDEFINED 
    console.log(object.media.url); 

    connection.sendUTF(JSON.stringify(object)); 
    //console.log('obj is ' + (JSON.stringify(object))); 
} 

私の関数である変数は、if文で期待されるデータを出力し、それの側面を定義されていません。私はそれが範囲と関係があると思っていますが、私は前に問題を横断することはありません。私はこれで本当のnoobですので、私はそれが愚かな質問ではないことを願っています..:/私は他の質問で周りを見てきましたが、私は答えを見つけるように見えることができません。

+10

を動作するはずです。メディア。 – Pointy

+0

Yeh申し訳ありませんが私は明確でなかった場合、私はそれを知っている – user1756180

答えて

1

になります。非常にきれいなコードを書くようにしてください。以下のコードは、 `「偽」の部分にあなたが設定されているときに、object.media.url``設定if` `オブジェクトの「真」の部分では

object.media.url = (data.entities.media != undefined) ? data.entities.media[0].media_url : 'images/1500x500.jpeg';

+0

ああ素晴らしい感謝。なぜこれが動作するのかまだ分かりません:/ – user1756180

+0

Ooops、今私はそれを取得.. – user1756180

2

data.entities.mediaの場合undefined image urlにobject.mediaを割り当てています。

object.media = 'images/1500x500.jpeg'

この場合object.media.urlあなたは、単一の行にifとelse文を書くことができます未定義

+0

私は明らかにwasnt場合申し訳ありません、私はそれを知っている – user1756180