-1

是否可以根据 JavaScript 中另一个变量的值动态选择一个变量?例如,假设我有 4 个变量:

var one = 'Apple',
    two = 'Orange',
    three = 'Banana',
    selector = prompt('Type one, two, or three');

console.log(`You chose ${whatever string is contained within selector}`);

console.log名称与中包含的字符串匹配的变量是否可能selector?示例:用户输入“一”,console.log 显示 Apple,用户输入二,console.log 显示橙色等。

显然,这可以用 aif或 a来完成switch,并且只有 3 个变量来区分这不会太难。但是,这适用于我正在构建的 Discord 机器人,在此过程中,如果我可以要求机器人在运行时的某个时间点输出给定变量的值,我发现这将有助于调试目的。我希望编写一些代码,允许我输入类似的!print someVariableName内容,并且我的代码将调用一个函数,该函数打印当时包含名称的变量中包含的值someVariableName

我正在使用 Node.js,如果这会有所不同 - 也许已经有一个 NPM 包可以做到这一点。

4

1 回答 1

0

使用 eval不是一个好主意,因为它使用户能够运行恶意代码!

如果您真的想遵循这种方式,请尝试:

var options = ['one', 'two', 'three']
var one = 'Apple',
    two = 'Orange',
    three = 'Banana',
    selector = prompt(`Chose [${options.join('-')}]`);

if (options.includes(selector)){
  console.log(`You chose ${eval(selector)}`);
}
于 2021-05-01T23:32:51.327 回答