如何在javascript中声明和使用动态变量?

use*_*566 40 javascript

假设我需要根据计数器声明一个javascript变量我该怎么办?

var pageNumber = 1;
var "text"+pageNumber;
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用?

能否请你帮忙?谢谢!

bun*_*ito 73

在JavaScript中(据我所知),有两种方法可以创建动态变量:

  1. 评估功能
  2. 窗口对象

EVAL:

var pageNumber = 1;
eval("var text" + pageNumber + "=123;");
alert(text1);
Run Code Online (Sandbox Code Playgroud)

窗口对象:

var pageNumber = 1;
window["text" + pageNumber] = 123;
alert(window["text" + pageNumber]);
Run Code Online (Sandbox Code Playgroud)

  • 6年后,这个答案救了我的命!谢谢 !! (2认同)

Mar*_*ahn 8

你怎么会访问所说的变量,因为你不知道它的名字?:)你可能最好在对象上设置参数,例如:

var obj = {};
obj['text' + pageNumber] = 1;
Run Code Online (Sandbox Code Playgroud)

如果你真的想这样做:

eval('var text' + pageNumber + '=1');
Run Code Online (Sandbox Code Playgroud)

  • 您可以通过多种方式访问​​所述变量:循环遍历变量名为var1,var2,var3的数字集.或者通过循环浏览json对象并更新全局变量来检索未知集合变量并动态加载它们,我确定还有更多场景 (3认同)

Jay*_*ena 6

我不认为你可以唱JavaScript.I认为你可以使用数组而不是这个,

 var textArray=new Array();
    textArray[pageNumber]="something";     
Run Code Online (Sandbox Code Playgroud)


NT3*_*3RP 4

假设该变量位于全局范围内,您可以执行以下操作:

var x = 1;
var x1 = "test"
console.log(window["x" + x]); //prints "test"
Run Code Online (Sandbox Code Playgroud)

然而,更好的问题可能是为什么你想要这样的行为。