提问者:小点点

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


在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];

学习一种通过数组实现这一点的方法是很酷的,但如果这不符合逻辑,那么就这样吧。我会一直试着自己想办法,但直到现在我都被困住了...


共2个答案

匿名用户

这两个都有效吗?

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

第二个就是错了。您遇到了类型强制问题,并最终将die1truefalse进行比较。

学习一种通过数组实现这一点的方法将是很酷的

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

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

匿名用户

使用数组的解决方案.reduce:

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

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