【发布时间】:2015-12-22 15:22:09
【问题描述】:
我正在尝试以最优雅的方式执行这段代码:
if (internalTableName in self.columnMap &&
internalColumnName in self.columnMap[internalTableName]) {
console.error('dupelicates');
}
else {
try {
self.columnMap[internalTableName][internalColumnName] = logicalColumnName;
} catch (err) {
self.columnMap[internalTableName] = {};
self.columnMap[internalTableName][internalColumnName] = logicalColumnName;
}
}
我可以将 try/catch 块转换为:
if (internalTableName in self.columnMap &&
internalColumnName in self.columnMap[internalTableName]) {
console.error('dupelicates');
}
else {
if (internalTableName in self.columnMap) {
self.columnMap[internalTableName][internalColumnName] = logicalColumnName;
}
else {
self.columnMap[internalTableName] = {};
self.columnMap[internalTableName][internalColumnName] = logicalColumnName;
}
}
我想知道 Javascript 是否提供了一些用于检查无效性的运算符,这可以使这个逻辑以更优雅的方式编写并减少 IF 子句。
谢谢
【问题讨论】:
-
@torazaburo 我不认为这是一个骗局,因为这个问题是关于设置而不是获取深度属性。并且它需要一个已经存在的属性的特殊情况。
标签: javascript if-statement null try-catch