Eri*_*tor 5 javascript compare equals
在 Javascript 中工作,我试图查看在给定时间是否有 5 个不同的变量都包含相同的值。该值可能是 6 个事物中的 1 个,但我需要查看它们是否都相同,无论它是哪个值。我试过这个:
if (die1 == die2 & die1 == die3 & die1 == die4 & die1 == die5) {
yahtzeeQualify == true;
}
Run Code Online (Sandbox Code Playgroud)
和这个:
if (die1 == die2 == die3 == die4 == die5) {
yahtzeeQualify == true;
}
Run Code Online (Sandbox Code Playgroud)
这两个都有效吗?如果是这样,我的代码中可能有其他地方的错误......如果没有,我真的很感激一些帮助。我在一个名为 dieArray 的数组中也有这些变量,如下所示:
var dieArray = [die1, die2, die3, die4, die5];
Run Code Online (Sandbox Code Playgroud)
学习一种通过数组来做到这一点的方法会很酷,但如果这不合逻辑,那就这样吧。我会继续尝试自己想办法,但直到现在我都被卡住了......
这两个都有效吗?
它们是“有效的”(因为这是可执行代码)但它们不执行您想要的计算。您想使用逻辑 AND ( &&)而不是按位 AND。
第二个是错误的。你遇到的强制类型转换的问题,并最终比较die1要么true或false。
通过数组学习一种方法会很酷
您可以使用Array#every和比较每个元素是否等于第一个:
if (dieArray.every(function(v) { return v === dieArray[0]; }))
// arrow functions make this nicer:
// if (dieArray.every(v => v === dieArray[0]))
Run Code Online (Sandbox Code Playgroud)
第一个是你想要的,但它搞砸了。你想要&&不&
第2条在逻辑上是错误的。
用数组来做
yahtzeeQualify = dieArray.every(function(n){ return n === dieArray[0] })
Run Code Online (Sandbox Code Playgroud)