我有一个nodejs
应用程序,该应用程序提供有关系统的数据,每个系统都有许多员工类型的联系人。
每当有人请求系统时,我都有一个脚本来填充与系统相关的员工。
我现在拥有的代码如下:
if(row.system_owner){
row.system_owner=emps[(row.system_owner).toUpperCase()];
}
if(typeof(row.system_owner) !== 'object'){
row.system_owner = null;
}
其中row是系统的实例,而emps是包含所有雇员的对象。这样做的原因是,最初,系统仅包含对雇员的引用,但是此处的引用被交换为整个雇员对象。
该代码很好用,但是我想知道是否有可能使它成为一个像这样的衬里,而跳过第二个IF statement
?
if(row.system_owner){
row.system_owner=emps[(row.system_owner).toUpperCase()] ? Object
: null
}
答案 0 :(得分:2)
您可以使用&&
和||
运算符
b = {
key: 'value'
}
a = undefined
res = a && b[a]
console.log(res) // undefined
a = 'key'
res = a && b[a]
console.log(res) // 'value'
//if you need null, you can use || operator
a = undefined
res = a && b[a] || null
console.log(res) // null
以您的情况
row.system_owner=row.system_owner && emps[(row.system_owner).toUpperCase()]
答案 1 :(得分:0)
您还可以尝试通过以下方式使用转头运算符:
if(row.system_owner){
row.system_owner = typeof(row.system_owner) === 'object'
? emps[(row.system_owner).toUpperCase()]
: null;
}
我可以想象这就是您要通过提案实现的目标。