创建带有增量的变量名

时间:2020-06-11 16:46:52

标签: javascript

我需要使用循环动态创建变量名称。

示例:

const1 =测试;

const2 =测试;

const3 =测试; ....

我尝试这样做,但是只能在数组中创建20个相同的变量名

我需要在每个循环中将唯一的名称递增1,然后返回每个变量以供之后使用。

function createVariables(){
  var accounts = [];

  for (var i = 0; i <= 20; ++i) {
      accounts[i] = "whatever";
  }

  return accounts;
}

我该怎么做?

3 个答案:

答案 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)

在游乐场观看:https://jsfiddle.net/denisstukalov/thvc2ew8/4/

答案 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);