繁体   English   中英

如何在Javascript中创建变量,并在变量名称中添加一个不断变化的数字?

[英]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.

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