根据计数结果创建动态变量名称

时间:2019-02-18 10:30:28

标签: javascript jquery variables

我正在尝试将字符串和数字组合到动态生成的变量中。 目前以这种方式尝试过:

const ElementCount = 2;

for (i = 1, i <= ElementCount, i++) {
    let SampleVariable[i] = "test";
}

ElementCount稍后将是动态的。

以上功能的结果应如下所示:

SampleVariable1 = "test"
SampleVariable2 = "test"

我的代码似乎有误-我必须在这里更改什么? 解决方案也可以是本地JS或jQuery。

非常感谢!

3 个答案:

答案 0 :(得分:4)

您的代码中几乎没有错误

  1. 您使用逗号,分隔语句。您应该使用分号;
  2. 您要在{循环中声明SampleVariable,以使其在外部不可用。在循环外声明它。
  3. 为此,您不应使用自变量,因为它们之间的差异仅为1。应将它们存储在数组中,并使用SampleVariable[number]来访问它们。
  4. 您应该初始化i = 0,否则SampleVariable的第一个元素将是undefined

const ElementCount = 2;
let SampleVariable = [];
for (let i = 0; i < ElementCount; i++) {
    SampleVariable[i] = "test";
}
console.log(SampleVariable);

答案 1 :(得分:3)

解决方案是使用eval,但这是令人讨厌的代码,请避免使用'eval',而只需使用arrayobject

1,eval解决方案:

const ElementCount = 2;

for (let i = 1; i <= ElementCount; i++) {
    eval("let SampleVariable[" + i + "] = 'test'");
}

2,array解决方案:

const ElementCount = 2;
let Variables = []
for (let i = 1; i <= ElementCount; i++) {
    Variables["SampleVariable" + i] = "test";
}

3,object解决方案:

const ElementCount = 2;
let Variables = {}
for (let i = 1; i <= ElementCount; i++) {
    Variables["SampleVariable" + i] = "test";
}

答案 2 :(得分:1)

这是我的解决方法

const ElementCount = 2;

for(i = 1; i <= ElementCount; i++) {
    this['SampleVariable'+i] = "test";
}
SampleVariable1 // "test" (browser)
this.SampleVariable2 // "test"