在填充对象时检查未定义的对象

时间:2014-10-31 18:26:57

标签: javascript

我有一个对象"响应",我想填充另一个对象" user"回复的内容,如下:

var  userr = {
            _id: new Date().toISOString()
            , authVia: "FB"
            , email: response.email
            , firstName: response.first_name
            , lastName: response.last_name
            , gender: response.gender
            , hometown: response.hometown.name
            , fbId: response.id
            , locale: response.locale
            , location: response.location.name
            , timezone: response.timezone
            , fbVerified: response.verified
        };

但有时response.hometown未定义,代码在日志控制台中没有任何错误就停止了。 如何在填充" user"之前或之后以简单的方式检查每个对象。 ?是否可以插入"如果"在对象?

由于

3 个答案:

答案 0 :(得分:5)

使用:

hometown: response.hometown && response.hometown.name,

和其他元素类似。如果未定义response.hometown,则&&的短路将阻止尝试评估response.hometown.name,因此您不会收到错误。

答案 1 :(得分:1)

如果您有一些默认值,则可以使用三元运算符。

var userr = {
    ...
    , hometown: response.hometown ? response.hometown.name : "N/A"
    ...
};

答案 2 :(得分:0)

设置变量

hometownName = typeof response.hometown == "undefined" ? "something" : response.hometown.name;

内部用户

, hometown: hometownName