【发布时间】:2018-11-30 19:32:58
【问题描述】:
好的,所以有三个布尔值。一次只能有一个布尔值为真。如果其中一个布尔值已经为真,如果条件满足它应该保持真,它不应该恢复为假。请注意,默认情况下,activeCrate1 应为 true。
当条件达到 activeCrate2 时,它为真,所有其他布尔值都为假。
当条件达到 activeCrate3 时,它为真,所有其他布尔值都为假。
但是我如何点击activeCrate1,并再次将其返回为true,而所有其他布尔值都应该为false?
例如,如果条件达到了已经为 True 的 activeCrate1,它应该保持为真并且什么都不会改变。我怎样才能让它这样工作?
一共两个问题,但需要在同一个代码中实现。
我的代码如下所示:
activeCrate1: true,
activeCrate2: false,
activeCrate3: false
if (state.activeCrate2 === false ) {
state.activeCrate2 = true
state.activeCrate1 = false;
state.activeCrate3 = false;
} else if (state.activeCrate3 == false){
state.activeCrate3 = true;
state.activeCrate1 = false;
state.activeCrate2 = false;
【问题讨论】:
-
我不明白这个问题。你陈述它应该如何表现的确切步骤,然后询问如何去做。你从字面上说:“如果条件达到......它应该保持真实”。那么然后写一个
if语句不改? -
请添加一些用例并将问题分成几部分。
-
你只需要一个 else{ activeCrate1: true, activeCrate2: false, activeCrate3: false, } 在 else if 之后。我想这就是你想要的
-
我的代码适用于activeCrate2和activeCrate3,但是activeCase1的情况不能正常工作,所以我没有在代码中包含它。
-
只有一个布尔值可以为真,当它发生时,所有其他值都应该为假。如果 activeCrate1 已经是 True,如果相同的条件连续两次或无限次命中它,它应该保持 True,因此它不会恢复其中的 True-False 值。
标签: javascript if-statement boolean comparison