将变量与OR结合使用以检查另一个变量的true / false

时间:2018-09-21 17:03:21

标签: javascript variables conditional-statements

我开发了一种算法,用于检查nextDay,nextMonth和nextYear(考虑leap年),定义的边界称为weekSpan,如果它在其中(以及在其他地方定义的特定时间),它将执行一种行为 。它现在可以正常工作,但是我很担心,因为我的weekSpan变量是使用OR值定义的(例如weekSpan = 1 || 2 || 3;)。

考虑到有一个名为weekDay的变量(值在0到6之间),我想检查那个weekDay是否在weekSpan范围内...我做了这样的事情:

if (weekDay == weekSpan) {

  (code here)...

}

但是...我试图通过在Chrome V8中执行以下操作来重新创建条件:

var weekSpan = 1 || 2 || 3 || 4 || 5;

var weekDay = 5;

if (weekDay == weekSpan) {

  console.log("Woooohhhh!");

}

Result: undefined.

我不确定哪种正确的方法可以通过我的代码检查真假,或者只是这样做:

if (weekSpan) {

  (code here)...

}

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以将带有数组的函数用于值并进行检查。

const isInWeekSpan = v => [1, 2, 3, 4, 5].includes(v);

console.log(isInWeekSpan(3));
console.log(isInWeekSpan(0));

图案

x = 1 || 2

返回与truthy组合的第一个logical OR ||值1。这不是检查值的合适方法。

答案 1 :(得分:0)

public virtual void deveTraduzirParcelas() { var fixture = new Fixture().Customize(new AutoMoqCustomization { ConfigureMembers = true}); var apropriacao1 = fixture.Create<IApropriacao>(); var apropriacao2 = fixture.Create<IApropriacao>(); var listaApropriacoes = new List<IApropriacao> { apropriacao1, apropriacao2 }; var tradutor = new ApropriacaoParcelaTradutor(); var listaTraduzida = tradutor.Traduzir(listaApropriacoes); Assert.AreNotEqual(listaTraduzida, null); } 的工作方式不是这样。尝试将weekSpan设置为可能的数字数组,然后检查weekDay是否在该数组中。

||