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

Lou*_*uis 1 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
        };
Run Code Online (Sandbox Code Playgroud)

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

谢谢

Bar*_*mar 5

使用:

hometown: response.hometown && response.hometown.name,
Run Code Online (Sandbox Code Playgroud)

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