繁体   English   中英

在javascript中使用变量的值作为变量

[英]Use variable's value as variable in javascript

我有一个带值的变量,比方说

var myVarMAX = 5;

在 HTML 中,我有一个id="myVar"元素。

我将id与字符串 MAX 结合起来(创建一个字符串myVarMAX )。 我的问题是如何使用此字符串访问同名变量?

您可以使用 eval,但如果您在窗口范围内有 var,这会更好

var myVarMAX = 5;
var id="MAX"; // likely not in a var

alert(window["myVar"+id]); // alerts 5

但是不要污染全局范围!

更好的解决方案类似于我发布的链接中的建议

var myVars = {
  "myVarMin":1,
  "myVarMax":5,
  "otherVarXX":"fred"
} // notice no comma after the last var

那么你有

警报(myVars[“myVar”+id]);

由于这篇文章经常被引用,我想添加一个用例。

可能经常是 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;

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM