Javascript 获取存储在另一个变量中的变量名的值

Javascript 获取存储在另一个变量中的变量名的值,javascript,eval,Javascript,Eval,不使用eval。。。我想看看我是否能从一个变量中得到一个值,这个值存储在另一个变量中。例如从varA获取'ValueC'的值,其中varA='varB'和varB='ValueC' 用户将输入一个字符串,下面模拟为名为“UserSpecified”的变量。他们可以输入任何字符,如果与现有变量不匹配。。。好吧,我只返回null 我意识到我可以用eval()来做这件事,但evals似乎不受欢迎,我正试图用更好的方式来做 我尝试了ES2015+接受的答案,但没有任何成功。我是否遗漏了什么,还是应该坚持

不使用eval。。。我想看看我是否能从一个变量中得到一个值,这个值存储在另一个变量中。例如从varA获取'ValueC'的值,其中varA='varB'和varB='ValueC'

用户将输入一个字符串,下面模拟为名为“UserSpecified”的变量。他们可以输入任何字符,如果与现有变量不匹配。。。好吧,我只返回null

我意识到我可以用eval()来做这件事,但evals似乎不受欢迎,我正试图用更好的方式来做

我尝试了ES2015+接受的答案,但没有任何成功。我是否遗漏了什么,还是应该坚持评估

a=“是”;
让b=“是”;
让c=“海”;
让userSpecified=“a”;
设obj={userSpecified};
让parm='userSpecified';
console.log(eval(用户指定));//显示“赞成”

console.log(obj[parm]);//这将显示“a”,但我希望它显示“yes”
如果您可以重新构造代码,使对象保存值,那么它只是基本的obj.key=val语法(确切地说:obj[key]=val

const obj={
答:"是",,
b:“是”,
c:“海洋”
}
const userSpecified=“a”;

console.log(obj[userSpecified]);//预期:是
不可能动态获取局部变量的值(除了
eval

但您可以使用对象存储数据(而不是局部变量的名称),并使用动态键访问该数据

我想这就是你想要的:

const data = {
  a: "1",
  b: "2",
  c: "3",
}

// Take the name of an object property and return its corresponding value.
function getValue(userSpecified) {
  return data[userSpecified]
}

console.log(getValue("a")) // 1
console.log(getValue("b")) // 2

console.log(getValue(someFormField.value))

obj
{“userSpecified”:“a”}
时,它为什么要输出
aye
?不确定这是否是您想要做的,但请尝试:
让userSpecified={a}obj
window[userSpecified]===“是”//if userSpecified==“a”
,因为@DBTake3仍然希望该值是局部变量的名称。谢谢!这帮了汉克斯,这帮了忙。我很高兴我能帮上忙:)