unshift添加太多变量

时间:2016-05-15 13:52:01

标签: javascript arrays

我有一个数组playerNameArray中的玩家名称列表。我还有第二个多维数组playerHistoryArray,它有玩家游戏历史。

我想要做的是浏览playerNameArray中的每个玩家,并检查它们是否存在于playerHistoryArray条目中。如果确实存在,我想将playerHistoryArray条目添加到新数组,但使用playerName作为此新数组playersPlayArray中的唯一ID字段。我这样做是使用代码:

for (var i = 0; i < (playerNameArray.length); i++) {

  playersName = playerNameArray[i];

  for (var j = 0; j < (playerHistoryArray.length); j++) {

    for (var details in playerHistoryArray[j]) {
      if (String((playerHistoryArray[j][details])).substr(0, 4) === "Player Name:") {
        currentPlayerName = String(handTotalArray[j][details]).substr(18);
        currentPlayerName = currentPlayerName.substring(0, currentPlayerName.indexOf(" ") + 1);
        if (String(currentPlayerName).trim() === String(playersName).trim()) {
          doesPlayerExist = true;
        }
      }
    }

    if (doesPlayerExist === true) {
      playersPlayArray[playersPlayCounter] = handTotalArray[j];
      playersPlayArray[playersPlayCounter].unshift(String(playersName).trim());
      playersPlayCounter = playersPlayCounter + 1;
      doesPlayerExist = false;
    }
  }
}

除了一件事,这是完美的。当我使用unshift获取玩家名称作为新数组中的唯一ID时,如果第二个玩家出现在另一个玩家的playerHistoryArray中,那么我将在我的玩家名数组中进行迭代也是playersPlayArray。所以我会看到这样的数组:

PLAYER1
Player2
其余信息

但我不想要这个我只想在该数组条目中使用Player1而在自己的数组条目中需要Player2。我已经完成了一千次代码,无法理解为什么要这样做。特别是当playersPlayCounter一直在递增时,后面的玩家名称如何被添加到新数组playersPlayArray中的早期条目中。

非常感谢任何帮助!

0 个答案:

没有答案