js的if...elseif 怎么用三元表达式写?

{{d.gid ==1 ? 'layui-badge' : 'layui-badge layui-bg-blue'}}

用三元表达式怎么才能写成 if elseif else?
效果要达到下面这样

if(d.gid == 1) {
    'layui-badge'
}elseif(d.gid == 2){
    'layui-badge layui-bg-blue'
}elseif(d.gid == 3){
    'xxxx'
}else{
    'xxx'
}
阅读 6.6k
7 个回答
d.gid === 1 ? 'layui-badge' : d.gid == 2 ? 'layui-badge layui-bg-blue' : d.gid == 3 ? 'xxxx' : 'xxxxx'

一个条件用if else或者三元符
两个条件用if elseif else
三个条件用switch

是这样:
d.gid === 1 ? 'layui-badge' : d.gid == 2 ? 'layui-badge layui-bg-blue' : d.gid == 3 ? 'xxxx' : 'xxx'

短路求值的方式来写逻辑判断并不推荐,毕竟代码主要作用是给人看。

最好用switch

如果是 Vue 的话,用个 method 处理一下不比这样写好看多了- -

如果不是当我没说……

这里明显不应该用三元表达式应该用 switch ... case ...

这种直接用短路写法简洁吧

(d.gid == 1 && 'layui-badge')||(d.gid == 2 && 'layui-badge layui-bg-blue')||(d.gid == 3 && 'XXX')||'XXXX'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题