我正在尝试将字符串和数字组合到动态生成的变量中。 目前以这种方式尝试过:
const ElementCount = 2;
for (i = 1, i <= ElementCount, i++) {
let SampleVariable[i] = "test";
}
ElementCount稍后将是动态的。
以上功能的结果应如下所示:
SampleVariable1 = "test"
SampleVariable2 = "test"
我的代码似乎有误-我必须在这里更改什么? 解决方案也可以是本地JS或jQuery。
非常感谢!
答案 0 :(得分:4)
您的代码中几乎没有错误
,
分隔语句。您应该使用分号;
SampleVariable
,以使其在外部不可用。在循环外声明它。SampleVariable[number]
来访问它们。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',而只需使用array
或object
。
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"