首页 > 解决方案 > 构造对象时如何使用三元运算符?

问题描述

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

main.js

if (item.type.declaration.signatures.length !== 0) {
  var responseData = item.type.declaration.signatures[0].parameters[0].type.declaration.children;
  for (var data of responseData) {
    if (data.name === "details") {
      var detailsName = name === data.type.elementType.name ? data.type.elementType.name : data.type.name;
      interfaceModules.push({ id: "details", name: detailsName });
    }
  }
}

标签: javascriptjqueryfor-loopconditional-statements

解决方案


如果您想使用三元,我相信您需要.name取消条件以避免尝试访问空元素上的属性的异常。

var detailsName = name === data.type.elementType ? data.type.elementType.name : data.type.name;

另一种选择可能是使用 elementType(如果存在),否则使用类型,然后获取名称。

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

推荐阅读