什么是执行此代码的更好方法?

在游戏开始时,我为所有新游戏信息声明了一个变量。

var newGameInfo = {
   players: [],
   playersList: [],
   enemies: [],
   enemiesList: [],
   drops: [],
   dropsList: [],
   attacks: [],
   attacksList: [],
   LVL: null
}


稍后,我通过此代码对所有变量清空此变量。

    if(newGameInfo.players.length > 0) newGameInfo.players.splice(0, newGameInfo.players.length);
    if(newGameInfo.playersList.length > 0) newGameInfo.playersList.splice(0, newGameInfo.playersList.length);
    if(newGameInfo.enemies.length > 0) newGameInfo.enemies.splice(0, newGameInfo.enemies.length);
    if(newGameInfo.enemiesList.length > 0) newGameInfo.enemiesList.splice(0, newGameInfo.enemiesList.length);
    if(newGameInfo.drops.length > 0) newGameInfo.drops.splice(0, newGameInfo.drops.length);
    if(newGameInfo.dropsList.length > 0) newGameInfo.dropsList.splice(0, newGameInfo.dropsList.length);
    if(newGameInfo.attacks.length > 0) newGameInfo.attacks.splice(0, newGameInfo.attacks.length);
    if(newGameInfo.attacksList.length > 0) newGameInfo.attacksList.splice(0, newGameInfo.attacksList.length);
    if(newGameInfo.LVL !== null) newGameInfo.LVL = null;


任何建议将不胜感激! :)这段代码占用了很多空间,可以完成如此​​简单的任务。

最佳答案

把它放在一个函数中
如果您覆盖,谁在乎状态是什么—摆脱if
如果要覆盖,为什么要拼接?只是覆盖。




var initGameInfo = function () {
        return {
            players: [],
            playersList: [],
            enemies: [],
            enemiesList: [],
            drops: [],
            dropsList: [],
            attacks: [],
            attacksList: [],
            LVL: null
        }
    },
    newGameInfo = initGameInfo();

// game code


//reset it
newGameInfo = initGameInfo();

10-07 20:50