2017-08-29 88 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