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

Javascript 你能比较多个变量,看看它们在JS中是否都等于相同的值吗?,javascript,compare,equals,Javascript,Compare,Equals,在使用Javascript时,我试图查看5个不同的变量在给定时间是否都包含相同的值。这个值可以是6个值中的1个,但是我需要看看它们是否都相同,不管它是哪个值。我试过这个: if (die1 == die2 & die1 == die3 & die1 == die4 & die1 == die5) { yahtzeeQualify == true; } 这是: if (die1 == die2 == die3 == die4 == die5) { yaht

在使用Javascript时,我试图查看5个不同的变量在给定时间是否都包含相同的值。这个值可以是6个值中的1个,但是我需要看看它们是否都相同,不管它是哪个值。我试过这个:

if (die1 == die2 & die1 == die3 & die1 == die4 & die1 == die5) {
    yahtzeeQualify == true;
}
这是:

if (die1 == die2 == die3 == die4 == die5) {
    yahtzeeQualify == true;
}
这两个都有效吗?如果是这样的话,我的代码可能在其他地方有错误……如果不是,我真的非常感谢您的帮助。我在一个名为dieArray的数组中也有这些变量,如下所示:

var dieArray = [die1, die2, die3, die4, die5];

学习一种通过阵列实现这一点的方法是很酷的,但如果这不符合逻辑,那就顺其自然吧。我会一直试着自己想办法,但到目前为止,我一直被卡住……

第一个是你想要的,但它是一团糟。您想要的是
&
而不是
&

第二个逻辑错误

使用数组执行此操作

yahtzeeQualify = dieArray.every(function(n){ return n === dieArray[0] })
这两个都有效吗

它们是“有效的”(就像这是可执行代码),但它们不会执行您想要的计算。您希望使用的是非位AND

第二个是错误的。您遇到类型强制问题,并最终将
die1
true
false
进行比较

如果能通过阵列学习一种实现这一点的方法,那就太酷了

您可以使用并比较每个元素是否等于第一个元素:

if (dieArray.every(function(v) { return v === dieArray[0]; }))
// arrow functions make this nicer:
// if (dieArray.every(v => v === dieArray[0]))

使用Array.reduce的解决方案:

var values = [die1, die2, die3, die4, die5];

var yahtzeeQualify = values.reduce(function(memo, element) {
   return element === values[0];
});

[die1,die2,die3,die4,die5]。每个(Object.is.bind(0,die1))
!![die1,die2,die3,die4,die5].sort().toString().match(/(\w+)(,?\1){4}/)
var same=[die1,die2,die3,die4,die5].sort();相同=相同[0]==相同[4]
RegExp([die2,die3,die4,die5]).test(数组(5).join(die1+“,”)
为什么第二个在逻辑上是错误的,它在逻辑上不是错误的,但它也无效Javascript@RFVenter这在逻辑上是错误的,因为die1==die2是真是假。然后你将其与die3进行比较,这对我的错误毫无意义,所以a==b==c是有效的javascript?