我有一个对象"响应",我想填充另一个对象" 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"之前或之后以简单的方式检查每个对象。 ?是否可以插入"如果"在对象?
由于
答案 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