如何从数组动态创建javascript变量?

Mer*_*erC 6 javascript arrays variables dynamic

假设我有一个变量名称数组:

var varNames = new Array("name1","name2","name3");
Run Code Online (Sandbox Code Playgroud)

我如何创建var name1,var name2var name3通过循环varNames数组?

Koo*_*Inc 8

这将创建全局变量(在全局命名空间中,即window).

var varNames = ["name1","name2","name3"];
for (var i=0;i<varNames.length;i+=1){
  window[varNames[i]] = 0;
}
name1; //=> 0
Run Code Online (Sandbox Code Playgroud)

由于使用全局变量被认为是不好的做法,您可以在custum对象中创建变量:

var myVariables = {}
   ,varNames = ["name1","name2","name3"];
for (var i=0;i<varNames.length;i+=1){
  myVariables[varNames[i]] = 0;
}
myVariables.name1; //=> 0
Run Code Online (Sandbox Code Playgroud)

编辑2017

使用es≥6:

const [v1, v2, v3] = ["name1","name2","name3"];
console.log(v1); // => name1
Run Code Online (Sandbox Code Playgroud)