我需要使用循环动态创建变量名称。
示例:
const1 =测试;
const2 =测试;
const3 =测试; ....
我尝试这样做,但是只能在数组中创建20个相同的变量名
我需要在每个循环中将唯一的名称递增1,然后返回每个变量以供之后使用。
function createVariables(){
var accounts = [];
for (var i = 0; i <= 20; ++i) {
accounts[i] = "whatever";
}
return accounts;
}
我该怎么做?
答案 0 :(得分:1)
使用Object可以解决
var accounts = {};
for (var i = 0; i <= 20; ++i) {
accounts["const"+i] = "test";
}
console.log(accounts)
答案 1 :(得分:0)
如果您需要变量(而不是数组),则可以使用以下代码:
for (let i = 0; i <= 20; ++i) {
window[`whatever${i}`] = + i;
}
console.log(whatever0)
console.log(whatever1)
//...
console.log(whatever19)
答案 2 :(得分:0)
您要达到的目标是什么?如某些评论中所述,数组是一种更好的方法。
也就是说,一种解决方案是使用字符串索引器(['']
)在JavaScript对象上设置值。请参见下面的示例:
function createVariables(obj){
for (var i = 0; i <= 20; ++i) {
obj[`const${i}`] = "whatever";
}
}
// add it to a new object
const accounts = {};
createVariables(accounts);
console.log(accounts.const1, accounts.const2, accounts.const3);
// avoid adding it to global scope (like window)
createVariables(window);
console.log(const1, const2, const3);