gpt4 book ai didi

javascript - 在 if else block 中重构重复的 if 语句

转载 作者:行者123 更新时间:2023-11-30 07:49:18 25 4
gpt4 key购买 nike

我有这个 if block ,我必须在两个 block 中测试相同的东西:

   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)
}
}

有没有办法以一种我不会重复同样的事情的方式重构它?

最佳答案

由于当 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 将以相同的方式处理 undefinednull。如果您不希望您的条件将 null 视为 undefined,请使用 ===!== .
  • download 是一个字符串 有点奇怪,当然这有时确实会发生。 如果 download 实际上是一个 bool 值,那么 !== 'true' 将永远为真(因为没有 bool 值会严格等于一个字符串). If 它是一个 bool 值,使用 if (download)if (!download) 而不是 === true!== true。如果它一个字符串,注意开头或结尾的空格和大写(' true' !== 'true'true 因为空间的;'True' !== 'true'true 因为大写 T)。 FWIW。

关于javascript - 在 if else block 中重构重复的 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56101672/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com