首页 > 解决方案 > 如何以更好的方式处理我的阵列?

问题描述

我正在 Discord 中创建一个迷你游戏,它收集玩家 - 从参与者中创建一个数组,然后开始一个一个地杀死他们,直到只剩下一个幸存者。但是,我遇到了一个奇怪的问题,大多数时候赢家会出现,但有时不会。我一直在努力解决这个问题,尽管一开始是想用它来制作一个功能——但后来又一次——我想知道我在哪里犯了错误。这是代码:

function StartGame(array, runner) {

  message.channel.send("**THE GAME HAS STARTED**");

  let amountOfDays = array.length - 1;
  let dailyDeaths = [];

  for (let MainLoop = 0; MainLoop < amountOfDays; MainLoop++) {

    let rando = array[Math.floor(Math.random() * array.length)];

    dailyDeaths.push(rando);

    let newarray = [];

    for (let i = 0; i < array.length; i++) {
      if (array[i] != rando) {
        newarray.push(array[i]);
      }
    }

    array = newarray;
  }

  let winnerOfTheRace = array.join(", ");
  if (winnerOfTheRace) {
    runner.send("**runner debug** - Everything calculated (winner is going to be **" + winnerOfTheRace + "**). Launching the game.");
  } else {
    runner.send("**runner debug** - Everything calculated (no winner - this is the error here.).");
  }
  
  LoopThroughTheGame(dailyDeaths, winnerOfTheRace);

  return;
}

.join(",")设置是如果我想在winnerOfTheRace未来设置多个获胜者。但目前我希望它只返回一个名字。它通常会这样做。随机不会。我究竟做错了什么?:D

标签: javascriptarrays

解决方案


推荐阅读