Javascript JS for循环无法正常工作,正在尝试通过变量数组进行循环

Javascript JS for循环无法正常工作,正在尝试通过变量数组进行循环,javascript,arrays,for-loop,Javascript,Arrays,For Loop,为了好玩,我尝试用Javascript编写骰子游戏Yahtzee。我有一个基本的界面设置了骰子的图像。关于我的问题,Yahtzee需要了解的一些规则是: 有5个骰子 3次掷骰后,玩家必须选择一个得分类别来得分 以下是不起作用的代码: var die1 = Math.floor((Math.random() * 6) + 1), die2 = Math.floor((Math.random() * 6) + 1), die3 = Math.floor((Math.random() * 6) + 1

为了好玩,我尝试用Javascript编写骰子游戏Yahtzee。我有一个基本的界面设置了骰子的图像。关于我的问题,Yahtzee需要了解的一些规则是:

有5个骰子

3次掷骰后,玩家必须选择一个得分类别来得分

以下是不起作用的代码:

var die1 = Math.floor((Math.random() * 6) + 1),
die2 = Math.floor((Math.random() * 6) + 1),
die3 = Math.floor((Math.random() * 6) + 1),
die4 = Math.floor((Math.random() * 6) + 1),
die5 = Math.floor((Math.random() * 6) + 1),
dieArray = ["", die1, die2, die3, die4, die5],
optionResult1 = 0;

document.getElementById("option1").onclick =  function() {
if (rollCount == 3 & option1 == false) {
    for (i=0; i < 5; i++) {
        i++;
        if (dieArray[i] == 1) {
            optionResult1++;
        }
        if (i = 5) {
            option1 = true;
            document.getElementById("optionResult1").innerHTML = optionResult1;
            console.log("finished");
        }
    }
            console.log(optionResult1);
} else if (rollCount != 3) {
    document.getElementById("dialogue").innerHTML = "You cannot pick this yet because you have not rolled 3 times.";
} else if (option1 == true) {
    document.getElementById("dialogue").innerHTML = "You cannot pick this because you have already used this category.";
}
}
假设是第三卷,且之前未选择此积分类别,会发生什么情况:

for循环应该通过dieArray,对于每个为1的die,向optionResult1变量添加1。如果五个骰子中有三个一,那么optionResult1应该是3,以此类推

相反,它通常会比它应该的值小1。即使我能在控制台中看到数组清楚地显示三个一,它也会给我2,有时甚至0。你看到的代码有什么问题吗?文档中显然还有其他代码,但我相当确定问题出在这个函数中。抱歉,如果这让人困惑,如果你玩过Yahtzee,可能更容易理解


我知道我可以用5个if语句来做同样的事情,但我正在努力从中学习,我很有信心这会奏效,我一定是做错了什么。谢谢

if i=5{应该是if i==5{…对于i=0;i<5;i++{应该是var i=0;i<5;i++{为什么要增加i两次?为什么在die数组中有一个空字符串作为元素零?是的,正如@DustinHoffner所说,你需要确保使用==或者更好地使用===启动你的开发工具,告诉我们你遇到了什么错误。我已经按照@DustinHoffner的建议更改了代码,并删除了循环中的i++i have no idea我为什么这么做,没有直截了当地思考…现在,我似乎得到了optionResult1的正确值,但I==5语句中的代码似乎根本没有触发…这是应该显示分数并关闭分数类别的部分。知道为什么吗?