【问题标题】:Javascript: when one variable is true, set all other variable to falseJavascript:当一个变量为真时,将所有其他变量设置为假
【发布时间】:2014-06-04 16:48:31
【问题描述】:

是否可以将变量组合在一起,以便当一个为真时其他变量返回假?

例如:我有三个变量,红色、绿色和蓝色。最初红色是true,而蓝色/绿色是false,但是当用户按下空格键时,绿色变成true。那时,我希望红色变成false。如果用户随后按下 Tab 键,蓝色将变为 true,红色/绿色将变为 false

抱歉,如果这是一个我应该能够使用 Google 找到的非常基本的问题。我试过在 SO 周围窥探,但我没有任何运气。任何有关如何解决此问题的帮助或想法表示赞赏。

【问题讨论】:

  • 我还没有尝试过任何可以完成我要求的事情。到目前为止,我一直在创建变量并手动将它们设置为真/假以响应关键事件,这变得混乱且难以管理。

标签: javascript boolean


【解决方案1】:

根据您要完成的工作,您可以创建一个类似的对象,例如:

var color = (function() {
    // set a default here
    var state = { red: true, green: false, blue: false };
    return {
        toggle: function(color) {
            Object.keys(state).forEach(function(k) {
                state[k] = (k == color) ? true : false;
            });
        },
        state: function() { 
            Object.keys(state).forEach(function(k) {
                console.log("[color] %s: %o", k, state[k]); 
            });
        }
    }
})();

color.toggle('red');
color.state();
color.toggle('green');
color.state();
color.toggle('blue');
color.state();         

【讨论】:

    【解决方案2】:

    不,但是根据您要执行的操作,可以使用不同的方法来近似它。

    为什么不只使用一个名为color 的变量或其他变量,并将其值设置为"red""green" 或其他变量?如果您让用户从下拉菜单或单选按钮中选择某些内容,这可能是最简单的方法。

    【讨论】:

      猜你喜欢
      • 2016-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-04
      • 2023-03-24
      • 1970-01-01
      • 2016-02-16
      • 2019-07-29
      相关资源
      最近更新 更多