我有一个带值的变量,比方说
var myVarMAX = 5;
在HTML中,我有一个id="myVar"
的元素。
我将id
与字符串MAX(创建字符串myVarMAX
)组合在一起。我的问题是如何使用此字符串来访问具有相同名称的变量?
答案 0 :(得分:7)
你可以使用eval,但是如果你在窗口范围内有var,那就更好了
var myVarMAX = 5;
var id="MAX"; // likely not in a var
alert(window["myVar"+id]); // alerts 5
然而Don't pollute the global scope!
更好的解决方案就像我发布的链接
中建议的那样var myVars = {
"myVarMin":1,
"myVarMax":5,
"otherVarXX":"fred"
} // notice no comma after the last var
然后你有
警报(myVars [ “myVar的” + ID]);
答案 1 :(得分:0)
由于该帖子经常被提及,我想添加一个用例。
可能经常是PHP程序员尝试Javascript / Nodejs,却遇到了这个问题。
// my variables in PHP
$dogs = [...]; //dog values
$cats = [...]; //cat values
$sheep = [...]; //sheep values
比方说,我想将它们分别保存在自己的文件(dogs.json,cats.json,sheep.json)中,而不是全部同时保存,而无需创建诸如savedogs,savecats,savesheep之类的功能。示例命令为save('dogs')
在PHP中,其工作方式如下:
function save($animal) {
if(!$animal) return false;
file_put_contents($animal.'.json', json_encode($$animal));
return true;
}
在Nodejs / Javascript中,可以这样做
// my variables in NodeJS/Javascript
let dogs = [...]; //dog values
let cats = [...]; //cat values
let sheep = [...]; //sheep values
function save(animal) {
if (!animal) return false;
let animalType = {};
animalType.dogs = dogs;
animalType.cats = cats;
animalType.sheep = sheep;
fs.writeFile(animal + '.json', JSON.stringify(animalType[animal]), function (err){
if (err) return false;
});
return true;
}