我如何在列表中设置原语的价值


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

我想拥有...

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

我该怎么办?就我而言,我需要在需要相应设置的列表中有一个动态的原始变量列表。我想使用for循环进行此操作。

您可以使用破坏性。

https://developer.mozilla.org/en-us/docs/web/javascript/reference/reference/operators/desteructuring_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();

解决方案可以是:

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

无论如何,您应该意识到,根据情况,它不可能是使用它的合理方法。

您可以使用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);

最新更新