我在搞清楚方面遇到了一些麻烦。我需要使用三元运算符返回值或false,但它从包含其他嵌套对象的对象获取所需的数据,我不能确定这些嵌套对象是否存在。
数据结构如下:
data = {
"foo":{
"bar": true,
"tar": true,
"rar": false
},
"goo":{
"har": true,
"par": true,
"mar": false
},
}
三元运算符基本上需要执行以下操作:
var something = data.foo.bar ? data.foo.bar : false
但有可能data.foo不存在,而且data.foo.bar也不存在。
我如何检查任何一个元素不存在,如果不存在则返回false,如果不存在则返回实际值?
我不相信这是它被标记为副本的副本,因为我特别需要它作为三元运算符。如果不适合我的目的。
答案 0 :(得分:1)
您可以使用in
运算符:
var x = (1234 in data && data[1234] && 5678 in data[1234]) ?
data[1234][5678] :
false;
这样的结构容易出错,这可能从问题的存在中显而易见。