javascript - 构造对象时如何使用三元运算符?
问题描述
我正在根据数据将对象推送到数组,因此属性正在动态变化,试图映射数据中的属性值,这里有两个选项 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 });
}
}
}
解决方案
如果您想使用三元,我相信您需要.name
取消条件以避免尝试访问空元素上的属性的异常。
var detailsName = name === data.type.elementType ? data.type.elementType.name : data.type.name;
另一种选择可能是使用 elementType(如果存在),否则使用类型,然后获取名称。
var detailsName = name === ( data.type.elementType || data.type ).name;
推荐阅读
- python - 给定邻接矩阵和使用 matplotlib 的节点坐标绘制(2D/3D)图
- c++ - 对 grpc 服务器类使用 gmock 进行单元测试是否有有用的模式?
- visual-studio-code - 我可以沿着父母递归搜索和扩展 VS Code settings.json 以扩展设置吗?
- javascript - 想通过jquery表单提交事件下载文件
- javascript - 正则表达式提取子字符串
- reactjs - 如何删除 chunk.js 并从 chrome 获取控制台日志中的源文件名
- c# - 有没有办法即时重新加载本地化的 dll?
- node.js - 如何使用 Sequelize 创建特定键的关联?
- c++ - 禁用 ASLR 时管道中的 C++ ReadFile() 失败?
- json - 如何使用包含作为匹配来合并 JSON 文件中的数据?