Closed. This question is opinion-based。它当前不接受答案。
                            
                        
                    
                
                            
                                
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。
                        
                        6年前关闭。
                                                                                            
                
        
所以我有两个变量。

一个是ammo,另一个是ammoAvailable

当用户单击鼠标左键时,ammo会减少1,但永远不会超过0。

当用户单击鼠标右键时,ammoAvailable减少50(或更少,如果不可用),而ammo增加相同的数量。

在JavaScript中处理这种变量关系的最优雅的方法是什么,这样就不会创建额外的弹药并且两个变量都不会低于0?

例:

@ammo = 0
@ammoAvailable = 500

userClick = =>
  if @ammoAvailable >= 50
    @ammo += 50
    @ammoAvailable -= 50
  else
    @ammo += @ammoAvailable
    @ammoAvailable = 0


我该如何更雄辩,更简短地做到这一点?

最佳答案

我的看法:

“当用户单击鼠标左键时,ammo会减少1,但永远不会超过0。”

leftClick = =>
  @ammo-- if @ammo


“当用户单击鼠标右键时,ammoAvailable减少50(或更少,如果不可用),而ammo增加相同的数量。”

rightClick = =>
  reloadAmmo = Math.min @ammoAvailable, 50
  @ammo += reloadAmmo
  @availableAmmo -= reloadAmmo

07-24 16:30