为了账号安全,请及时绑定邮箱和手机立即绑定

js 对象取值遇到undefinded时,如何停止继续取值?

js 对象取值遇到undefinded时,如何停止继续取值?

有只小跳蛙 2019-03-21 22:15:01
问题如下:对方 正常情况下 给我传递了一个对象,接收后如下var val={    o1:{        key:1    },    o2:{        key:2    }}但出现错误时,传回默认值,我接收后如下var val={    o2:{        key:2    }}我想要的效果就是,如果出现错误时取传给我的默认值,,这么写觉得比较优雅[但报错]var key=val.o1.key || val.o2.key;//undefined但我需要判定o1是否undefined,如下if(typeof val.o1 === 'undefined'){    key=val.o2.key;}else{    key=val.o1.key;}有没有什么有效但优雅的方法可以在 var key=val.o1.key || val.o2.key;时,o1未定义则直接去后面的值,而不报错?
查看完整描述

5 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

var key = (val.o1 || val.o2 || {}).key || null;


查看完整回答
反对 回复 2019-04-07
?
精慕HU

TA贡献1845条经验 获得超8个赞

兄弟你哪个if语句压根不会走,typeof一个对象 返回值应该为object吧 。你可以用instanceof


查看完整回答
反对 回复 2019-04-07
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

Object.values(val)[0]['key']


查看完整回答
反对 回复 2019-04-07
  • 5 回答
  • 0 关注
  • 770 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信