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
您使用的是哪个版本?答案中的第一个版本