有没有比巨大的条件运算符(JS)更好的方法?

问题描述 投票:0回答:1

目前没有任何错误或任何不良问题,但每次我尝试向其中添加新数据时,它都会崩溃。 看起来也非常凌乱。 有没有任何更好的方法来做到这一点?

(
                                                                    s==="FFP"?o.ffp:(
                                        s==='XP'? (await getXP(index,true))||o.e.xpLvl*o.e.xp:(
                                            s==="FSC"?o.fsc:(
                                                s==='BGP'?o.bgp:(
                                                    s=== "BTN"?btns[index]||0:(
                                                        s==='CIV'?await getCiv(index)||0:(
                                                            s==="TIQ"?await getTotalInv(index)||0:(
                                                                s==='IS1'?isold[index]||0:(
                                                                    s==="ITO"?acn[index].cache.itemsObtained||0:(
                                                                        s==='FLW'?flws[index]||0:(
                                                                            s==="PLY"?acn[index].playtime||0:(   
                                                                                s==="QSC"?(qusc[index]?qusc[index].completed:0):(
                                                                                    s==='QSR'?(qusc[index]?qusc[index].rankings:0):(
                                                                                        s==="DXP"?(dbs.xp[index]||0):(
                                                                                            s==='FPS'?etcscores.fps[index]||0:(
                                                                                                s==='SMN'?(index ==="admin_907"?1:0):
                                                                                                "N/A")
                                                                                      )
                                                                                  )
                                                                              )
                                                                          )
                                                                      )
                                                                  )
                                                              )
                                                          )
                                                      )
                                                  )
                                              )
                                          )
                                      )
                                    )
                              )

我尝试过 if/then/else 语句,但它实际上是同样混乱的事情,尽管中断的频率要少一些。

javascript if-statement web conditional-statements
1个回答
1
投票

如果所有检查都在测试字符串变量的确切值

s
,则具有对象查找的解决方案应该保持事物清洁,如下所示:

const output = {
  'FFP': o.ffp,
  'XP': (await getXP(index, true)) || o.e.xpLvl * o.e.xp,
  'FSC': o.fsc,
  'BGP': o.bgp,
  // ...
}[s] ?? 'N/A';
© www.soinside.com 2019 - 2024. All rights reserved.