2017-08-29 98 views
-1

我想從JSON一些數據,這是我的功能可變範圍if語句

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語句,但未定義出來的一面。我猜測它與範圍有關,但我以前從未遇到過這個問題。我真的很喜歡這個,所以我希望這不是一個愚蠢的問題..:/我在其他問題上有一個很好的看看,但我似乎無法找到答案。

+10

在'if'你設置'object.media.url',而在「假」的部分設置'對象的「真實」的一部分。 media'。 – Pointy

+0

對不起,如果我不清楚,我知道, – user1756180

回答

1

你可以寫if和else在一行語句。嘗試編寫你的代碼非常乾淨。下面的代碼應該工作

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

+0

啊真棒謝謝。仍然不知道爲什麼這個工程雖然:/ – user1756180

+0

Ooops,現在我明白了.. – user1756180

2

data.entities.mediaundefined 您正在將object.media分配給圖像url。

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

在這種情況下 object.media.url

不確定

+0

葉對不起,如果我沒有清楚,我知道 – user1756180