[英]How do I create a variable in Javascript, and add a changing number to the variable's name?
这段代码是完全错误的,但是我希望它能使您了解我要做什么:
var qarowquestion+obj.returnIntJson;
obj.returnIntJson的值只是一个整数。 我想获取那里保存的值,例如:2043,并将2043添加到qarowquestion的末尾。 因此,我将拥有:
var qarowquestion2043;
谢谢。
var myObj = {};
myObj['qarowquestion' + obj.returnIntJson] = 'some Val';
尝试以上。 它将利用动态javascript并在myObj对象上创建qarowquestion2043属性。
TGH的答复几乎是我所需要的,或者只是我所不知道的使用方法。
我进行了更改,以便带有数字的部分是值,而不是键。
var myObj = {};
myObj['qarowquestion'] = "qarowquestion" + obj.returnIntJson;
现在,我可以使用以下myObj.qarowwquestion
访问它: myObj.qarowwquestion
,它给出以下结果: qarowquestion2043
对于一个具体的例子,在我的情况下:
document.getElementById("qarow" + obj.returnIntJson).innerHTML = myObj.qarowquestion;
您不能创建变量,正如TGH所述,您可以将值作为对象中的命名属性添加。
var obj = {};
obj['qarowquestion' + obj.returnIntJson] = 'xxx';
这样,您还可以为对象提供适当的名称空间。
var someNameSpace = {};
someNameSpace['someObject'] = 'someVal';
希望这会有所帮助。
我正在阅读有关在javascript中使用动态变量名称的相关SO帖子 ,并且可接受的答案提出了一个很好的观点(强调是我的):
由于ECMA- / Javascript都是关于对象和上下文 (它们也是某种对象)的,因此每个变量都存储在一个称为Variable-(或在函数的情况下是Activation Object)的变量中。函数上下文),则将这些变量隐式地写入Global对象(=浏览器中的窗口)。
因此,例如(再次从答案中获取):
function foobar() {
this.a = 1;
this.b = 2;
var name = window['a']; // === undefined as it refers to the global context and is undefined
alert(name);
name = this['a']; // === 1
alert(name); // outputs 1
alert(a); //outputs 1
//Since we are talking about context here, you could clearly do
this['qarowquestion'+obj.returnIntJson] = "foo";
alert(qarowquestion2043); //outputs foo
}
因此,从本质上讲,可以将变量作为特定上下文中的对象进行访问,这确实很有帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.