你能比较多个变量,看看它们在 JS 中是否都等于相同的值吗?

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)

学习一种通过数组来做到这一点的方法会很酷,但如果这不合逻辑,那就这样吧。我会继续尝试自己想办法,但直到现在我都被卡住了......

Fel*_*ing 6

这两个都有效吗?

它们是“有效的”(因为这是可执行代码)但它们不执行您想要的计算。您想使用逻辑 AND ( &&)而不是按位 AND。

第二个是错误的。你遇到的强制类型转换的问题,并最终比较die1要么truefalse

通过数组学习一种方法会很酷

您可以使用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)


Far*_*her 0

第一个是你想要的,但它搞砸了。你想要&&&

第2条在逻辑上是错误的。

用数组来做

yahtzeeQualify = dieArray.every(function(n){ return n === dieArray[0] })
Run Code Online (Sandbox Code Playgroud)