当前位置: 首页 > 知识库问答 >
问题:

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

魏熠彤
2023-03-14

有没有可能将变量组合在一起,这样当一个为真时,其他变量返回假?

举个例子:我有三个变量,红,绿,蓝。最初红色是< code >真,而蓝色/绿色是< code >假,但是当用户按空格键时,绿色变成< code >真。此时,我希望红色变为< code>false。如果用户随后按下tab键,蓝色将变为< code>true,红色/绿色将变为< code>false。

如果这是一个非常基本的问题,我应该可以使用谷歌找到,我很抱歉。我试过窥探SO,但运气不好。感谢任何关于如何解决这个问题的帮助或想法。

共有2个答案

狄睿
2023-03-14

不,但是有不同的方法来近似它,这取决于你想做什么。

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

吴峰
2023-03-14

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

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();         
 类似资料:
  • 以下是经典的实践中的一致性: 当线程A写入一个易失性变量,随后线程B读取相同的变量时,A在写入易失性变量之前可见的所有变量的值在读取易失性变量后变得对B可见。 我不确定我真的能理解这句话。例如,在这种情况下,所有变量的含义是什么?这是否意味着使用对使用非volatile变量也有副作用<在我看来,这句话有一些我无法理解的微妙含义<有什么帮助吗?

  • 假设我想要一个变量包含从1到100的数字。我可以这样做: 但是把所有这些数字写下来需要很多时间。有没有办法给这个变量设置一个范围?类似的东西: 这听起来可能是一个非常愚蠢的问题,但我自己还没有弄清楚。提前感谢。

  • 我将一个字符串设置为activeElement.value,一切正常。现在,我想为activeElement.value设置一个变量,我得到了以下错误代码: 线程“main”中的异常 org.openqa.selenium.WebDriver异常:未定义患者 ID 命令持续时间或超时:66 毫秒 构建信息:版本:“2.45.0”,修订版:“5017cb8”,时间:“2015-02-26 23:59

  • 问题内容: 以下是经典文章Concurency in Practice: 当线程A写入易失性变量,随后线程B读取相同的变量时,在写入易失性变量之前A可见的所有变量的值,在读取易失性变量后B可见。 我不确定我是否真的能理解这一说法。例如,在这种情况下,所有变量的含义是什么?这是否意味着使用volatile还会对非易失性变量的使用产生副作用? 在我看来,该声明具有我无法理解的一些微妙含义。 有什么帮助

  • 问题内容: 帮助我与同事解决争执:在Java中将变量或集合设置为null是否有助于垃圾回收并减少内存使用?如果我有一个运行时间较长的程序,并且每个函数都可能被迭代调用(可能数千次):在将值返回给父函数之前将其中的所有变量设置为null是否有助于减少堆大小/内存使用量? 问题答案: 那是旧的表演传奇。在1.0天之内确实如此,但是对编译器和JVM进行了改进以消除这种需求(如果有的话)。如果您感兴趣,这

  • 如果有文件,则显示带有下载元素的task1; task2带有一个上传输入文件元素和一个approve或not(approved)变量;注意,我可以在下一个任务(例如task03)下载文件,但不能在上一个任务下载 批准=false; task1使用file_task2变量显示下载元素;这里是问题

  • 假设我有一个分组数据帧: 然后假设我要对一些现有变量求和: 但是,如果要同时添加两个摘要命令,则无法: 在dplyr链中使用group_by()之后,我如何使用SUMMARSE()添加新功能,以及使用将现有功能相加?

  • 问题内容: 我有一个简单的文本输入字段,我必须在其中设置一个对象的默认值,并将其最终值保存在其他对象中。以下代码无法正常工作。 表单是DTO对象,客户端是数据库中的实体对象。 解决这种情况的正确方法是什么? 不工作是指-初始值为client.name =“ Foo”和form.clientName = null。我需要输入字段的显示值为“ Foo”,并在表单提交后将form.clientName值