Javascript 构造对象时如何使用三元运算符?

Javascript 构造对象时如何使用三元运算符?,javascript,jquery,for-loop,conditional-statements,Javascript,Jquery,For Loop,Conditional Statements,我正在根据数据将对象推送到数组中,因此属性正在动态更改,试图映射数据中的属性值,这里的两个选项数据可以是data.type.elementType.name或data.type.name如何使用三元运算符分配任一值 main.js if(item.type.declaration.signatures.length!==0){ var responseData=item.type.declaration.signatures[0]。参数[0]。type.declaration.children;

我正在根据数据将对象推送到数组中,因此属性正在动态更改,试图映射数据中的属性值,这里的两个选项数据可以是
data.type.elementType.name
data.type.name
如何使用三元运算符分配任一值

main.js

if(item.type.declaration.signatures.length!==0){
var responseData=item.type.declaration.signatures[0]。参数[0]。type.declaration.children;
用于(响应数据的var数据){
如果(data.name==“详细信息”){
var detailsName=name==data.type.elementType.name?data.type.elementType.name:data.type.name;
push({id:“details”,name:detailsName});
}
}
}

如果您想使用三元,我相信您需要将
.name
从条件中去掉,以避免尝试访问null元素上的属性的异常

var detailsName = name === data.type.elementType ? data.type.elementType.name : data.type.name;
另一个选项是使用elementType(如果存在),否则使用该类型,然后获取名称

var detailsName = name === ( data.type.elementType || data.type ).name;

data.type.elementType.name?
最有可能是
data.type.elementType?
。如果elementType不存在,试图将
.name
从中删除将是一个空指针例外,在三元比较
name===data.type.elementType.name?
实际上,当数据以
data.type.elementType.name
的形式出现时,它的抛出未定义
详细信息name
您使用的是哪个版本?答案中的第一个版本