在 JavaScript 中将字符串转换为变量名称

2022-08-29 23:59:04

我一直在寻找解决方案,但找不到任何工作。

我有一个名为 的变量。onlyVideo

"onlyVideo"字符串被传递到函数中。我想将函数中的变量设置为某种东西。我该怎么做?onlyVideo

(有许多变量可以被调用到函数中,所以我需要它来动态工作,而不是硬编码的语句。if

编辑:可能有更好的方法来做你试图做的事情。我在我的JavaScript冒险中很早就问过这个问题。看看 JavaScript 对象是如何工作的。

一个简单的介绍:

// create JavaScript object
var obj = { "key1": 1 };

// assign - set "key2" to 2
obj.key2 = 2;

// read values
obj.key1 === 1;
obj.key2 === 2;

// read values with a string, same result as above
// but works with special characters and spaces
// and of course variables
obj["key1"] === 1;
obj["key2"] === 2;

// read with a variable
var key1Str = "key1";
obj[key1Str] === 1;

答案 1

如果它是一个全局变量,那么或者在你的情况下应该做这个把戏。window[variableName]window["onlyVideo"]


答案 2

Javascript有一个适用于此类场合的功能:eval()

function (varString) {
  var myVar = eval(varString);
  // .....
}

编辑:对不起,我认为我浏览了这个问题太快了。这只会给你变量,你需要设置它

function SetTo5(varString) {
  var newValue = 5;
  eval(varString + " = " + newValue);
}

或者如果使用字符串:

function SetToString(varString) {
  var newValue = "string";
  eval(varString + " = " + "'" + newValue + "'");
}

但我想有一种更合适的方法来完成你正在寻找的东西?我不认为eval()是你真正想要使用的东西,除非有充分的理由。eval()