我有这个if块,我必须在两个块中测试相同的东西:
if (download !== 'true') {
if(index == undefined){
res.json(req.doc);
}else{
res.json(index)
}
} else {
if(index == undefined){
exports.download(res, req.doc);
}else{
res.json(index)
}
}
有没有办法重构它,让我不再重复同样的事情?
发布于 2019-05-13 01:27:20
由于当index == undefined
为false时,您在两个分支中执行相同的操作,因此只需先执行测试并反转它:
if (index != undefined) {
res.json(index);
} else if (download !== 'true') {
res.json(req.doc);
} else {
exports.download(res, req.doc);
}
附注:
== undefined
和!= undefined
将以同样的方式对待undefined
和null
。如果 download
实际上是布尔值,则!== 'true'
将始终为true (因为没有布尔值严格等于字符串)。如果是布尔值,则使用if (download)
或if (!download)
,而不是=== true
或!== true
。如果它是一个字符串,请注意开头或结尾的空格和大写(由于空格,' true' !== 'true'
为true
;由于大写T
,'True' !== 'true'
为true
)。FWIWhttps://stackoverflow.com/questions/56101672
复制相似问题