繁体   English   中英

在JavaScript中使用三元运算符代替if..else

[英]Use Ternary operator instead of if..else in javascript

代替if ... else语句,该如何使用三元运算或任何其他方法来简化javascript中的代码

if(req.query.pr=="trans"){
    util.transUrl(req.originalUrl).then(param => {
      res.redirect(param);
    })
  }
  else if(req.query.pr=="inst"){
    util.instaUrl(req.originalUrl).then(param => {
      res.redirect(param);
    })
  }
  else{
    res.status(400).send("Contact the editor of the originating page.")
  }

有多种方法可以在JS中编写条件语句。 但是,如果有多个语句,我会说你应该坚持if else if else 但是,如果您想查看其他方法,可以在这里找到:

使用三元运算符? : ? :

const {pr} = req.query
pr === 'trans'
? util.transUrl(req.originalUrl).then(param => 
      res.redirect(param)
  )
: pr === 'inst'
? util.instaUrl(req.originalUrl).then(param => 
      res.redirect(param)
  )
: res.status(400).send('Contact the editor of the originating page.')

使用门逻辑&& ||

const {pr} = req.query
(pr === 'trans' && 
    util.transUrl(req.originalUrl).then(param => 
        res.redirect(param))
) ||
(pr=== 'inst' && 
    util.instaUrl(req.originalUrl).then(param => 
        res.redirect(param))
) || 
res.status(400).send('Contact the editor of the originating page.')

现在,查看您的代码,这里if和else if语句相似 因此, else if像这样使用三元运算符,则可以避免else if

const {pr} = req.query
if(pr === 'trans' || pr === 'inst'){
    util[pr === 'trans' ? 'transUrl' : 'instaUrl'](req.originalUrl)
    .then(param => res.redirect(param))
}
else{
    res.status(400).send('Contact the editor of the originating page.')
}

仅供参考在比较字符串且不需要强制时,请考虑使用===代替==

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM