Javascript:当一个变量为true时,将所有其他变量设置为false

时间:2014-06-04 16:48:31

标签: javascript boolean

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

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

道歉,如果这是我应该能够使用Google找到的一个非常基本的问题。我试过偷窥,但我没有运气。任何有关如何处理此问题的帮助或想法都表示赞赏。

2 个答案:

答案 0 :(得分: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();         

答案 1 :(得分:0)

不,但根据您的目的,有不同的方法来近似它。

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