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

时间:2019-04-26 05:49:58

标签: javascript if-statement ternary-operator

代替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.")
  }

1 个答案:

答案 0 :(得分:2)

有多种方法可以在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

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

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