gpt4 book ai didi

javascript - 如何通过使用另一个变量命名来设置一个变量

转载 作者:行者123 更新时间:2023-11-30 19:01:50 26 4
gpt4 key购买 nike

我正在制作一个控制台风格的网站,我正在制作一个读取和设置变量的命令。用户将在输入框中键入“Var(变量)(真/假)”。我使用数组用空格分隔每个部分,因此“Var Red True”将是“Var”、“Red”、“True”。

我需要有关将数组的(变量)部分用作变量名的帮助。因此,如果用户输入“Var red true”,我需要一种方法来告诉 JavaScript 将变量“red”设置为 true,尽可能不使用一堆 ifs 语句。

到目前为止,这是我的代码。

(以下代码位于 if 语句内,该语句检查在文本框上按回车后命令输入(输入框文本)是否以“VAR”开头。)(调用的“delivery(4)”函数不是负责设置变量,它用于将文本打印到日志。)

    var variablearray = commandinput.split(/(\s+)/).filter( function(e) { return e.trim().length > 0; } );
console.log(variablearray); // ["VAR", "(VARIABLE)", "TRUE/FALSE/READ"]
//Read the inputted variable - What variable will change
var input_var = variablearray[1];
//Read the 3rd term - The action to be preformed (True/False/Read) - What to do to variable
var third_term = variable array[2];
if (third_term == "TRUE") {
//**I need help with this part**
delivery(4, "Variable '" + input_var.toString() + "' has been set to " + window[input_var.toString()] + ".")
} else if (third_term == "FALSE") {
delivery(4, "Variable '" + input_var.toString() + "' has been set to " + window[input_var.toString()] + ".")
}

我试过没有用。

VAR input_var.toString = True - and - VAR input_var.toString() = True

“input_var.toString()”确实返回需要更改的变量,但是我找不到更改所述变量的方法。任何帮助,将不胜感激。

编辑:感谢 rajjix,问题已经解决!使用“window[user_input_var] == true”来更改变量。

最佳答案

Javascript 变量取决于它们声明/定义的词法作用域,无论是全局作用域还是某个函数内部,如果您只是在脚本标签内定义变量,您不妨说

window[user_input_var] == true

相当于(如果用户输入是“红色”)

var red = true.

你应该从中得到的最重要的部分是 javascript 中的变量在某个地方是词法范围的。词法范围意味着在某处物理声明,并且基于该声明,如果我们可以访问该范围,我们可以在其他地方使用它们。

作用域可以在这里引发很多讨论,我认为我们不需要把那只兔子整个挖下来。我上面的示例应该可以解决问题,如果不能确定您希望声明变量的范围/位置,并在窗口中定义那里。

关于javascript - 如何通过使用另一个变量命名来设置一个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59439609/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com