为什么我的比较数组不起作用?

哈瓦米尔

我正在构建一个游戏,我希望从提示中获取玩家的输入,并将其与他们已经使用的输入进行比较,如果他们两次选择相同的内容,则拒绝该选择。这是我的相关代码:

var playerChoiceRow = 0;
var playerChoiceColumn = 0;
var playerAttackArray = [];

function playerAttack(playerChoiceRow,playerChoiceColumn) {
for (var i=0; i<playerAttackArray.length; i++){
    if ([playerChoiceRow,playerChoiceColumn] === playerAttackArray[i]){
        alert("You have already attacked this space, please choose another.");
        playerChoiceRow = prompt("Please choose a number between 0 and 5.");
        playerChoiceColumn = prompt("Please choose a number between 0 and 5.");
    }
}
if (playerChoiceRow === undefined){
    alert("Please choose a number between 0 and 5!");
    playerChoiceRow = prompt("Please choose a number between 0 and 5.");
}
if (playerChoiceColumn === undefined){
    alert("Please choose a number between 0 and 5!");
    playerChoiceColumn = prompt("Please choose a number between 0 and 5.");
}
playerAttackArray.push([playerChoiceRow,playerChoiceColumn]);

while (playerCounter || computerCounter <=4){
    var playerChoiceRow = prompt("Please select row of attack. (0 though 5)")-'';
    var playerChoiceColumn = prompt("Please select column of attack. (0 though 5)")-'';
    playerAttack(playerChoiceRow,playerChoiceColumn);
    if (playerCounter == 5){
        alert("You have sunk all enemy boats!");
        break;
    }
}
6502

在Javascript数组中,比较是关于身份,而不是内容;换句话说===,当两个表达式是数组时,两个表达式之间的返回值仅在它们引用同一数组对象时才返回true,而不是在两个包含相同事物的数组中返回。

您可以通过首先将两面都转换为字符串来解决此问题:

if (""+[playerChoiceRow,playerChoiceColumn] === ""+playerAttackArray[i]) ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么数组比较不起作用?(加油站)

来自分类Dev

为什么我的日期比较在JavaScript中不起作用?

来自分类Dev

为什么我的bash数组附加操作不起作用?

来自分类Dev

为什么我的数组功能不起作用?

来自分类Dev

为什么我的JSON数组查询不起作用?

来自分类Dev

为什么比较不起作用

来自分类Dev

为什么我的printf不起作用?

来自分类Dev

为什么我的列表不起作用?

来自分类Dev

为什么我的for循环不起作用?

来自分类Dev

为什么我的代码不起作用?

来自分类Dev

为什么getchar()对我不起作用?

来自分类Dev

为什么我的排序不起作用?

来自分类Dev

为什么我的递归不起作用?

来自分类Dev

为什么我的线程不起作用?

来自分类Dev

为什么我的ItemListener不起作用?

来自分类Dev

为什么我的OpenGL不起作用?

来自分类Dev

为什么我的if(-f)不起作用?

来自分类Dev

为什么我的测试不起作用?

来自分类Dev

为什么我的阵列不起作用?

来自分类Dev

为什么我的lambda不起作用?

来自分类Dev

为什么我的setOnKeyListener()不起作用?

来自分类Dev

为什么我的菜单不起作用?

来自分类Dev

为什么我的TTS不起作用?

来自分类Dev

为什么我的延误不起作用?

来自分类Dev

为什么我的排序不起作用?

来自分类Dev

为什么我的模态不起作用?

来自分类Dev

为什么我的片段不起作用

来自分类Dev

为什么我的ItemListener不起作用?

来自分类Dev

为什么我的xpath不起作用