如何在列表中设置基元的值?

时间:2017-09-13 01:05:37

标签: javascript

var var1;
var var2;
var var3;
var list_var = [var1, var2, var3];
var values = ["hello", "cruel", "world"];

我想要......

var1 = "hello"
var2 = "cruel"
var3 = "world"

我该怎么办?在我的情况下,我需要在列表中有一个动态的原始变量列表,需要相应地设置。我想用for循环来完成这个。

3 个答案:

答案 0 :(得分:1)

您可以使用解构。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment

在你的例子中......

var values = ["hello", "cruel", "world"];
var [var1, var2, var3] = values;
console.log(var1, var2, var3)

https://jsfiddle.net/fnsjrjcv/

更新:您可以使用它来设置外部作用域中的变量,方法与使用普通变量的方式相同。通过在外部范围内定义它们,这是一个例子:

var var1, var2, var3;

function changeMyVars() {
  var values = ["hello", "cruel", "world"];
  [var1, var2, var3] = values;
}

changeMyVars();

答案 1 :(得分:0)

解决方案可以是:

for (i = 1; i < 4; i++) { 
    eval("var" + i + "=" + values[i]);
}

无论如何,根据具体情况,您应该意识到使用它不是一种合理的方式。

答案 2 :(得分:0)

您可以使用window对象在全局范围内设置变量值(尽管不建议/建议在全局范围内使用变量)。但是list_var应该有字符串格式的变量列表。

var list_var = ["var1", "var2", "var3"];
var values = ["hello", "cruel", "world"];

for (i = 0; i < list_var.length; i++) {
    window[list_var[i]] = values[i];
}

console.log(var1);
console.log(var2);