如何在循环中为动态变量分配动态值

How to get Dynamic Variable assigned with dynamic values in loops

提问人:Forest Fire 7 提问时间:6/15/2023 最后编辑:Forest Fire 7 更新时间:6/16/2023 访问量:50

问:

我创建了一个循环来获取动态变量,如下所示:

var tile;
var tiles;
while(i<16){
this['tile'+i]=this['tiles'+i];
i++;
}

我希望它能回来:

tile1=tiles1
tile2=tiles2
tile3=tiles3........

(tiles1,tiles2,tiles3.. 表示预定义变量图块的值1,2,3...) 它确实返回变量名称('='的左侧),但不返回值('='的右侧)。 我是 JavaScript 的新手。希望我能解释这个问题。 如何解决这个问题?

我试过了

 this['tile'+i]=tiles+i;
 this['tile'+i]=tiles[i];
 this['tile'+i]="tiles"+i;

但无济于事。

JavaScript 循环 变量

评论

0赞 Quentin 6/15/2023
很难说这里到底发生了什么,因为你试图读取的变量还没有在你共享的代码中定义,而 的值取决于代码的运行位置。您需要提供一个最小的可重现示例。更重要的是,您首先不应该使用按顺序编号的变量名称。我们有数组!!this

答:

0赞 proof-of-correctness 6/15/2023 #1

如果你声明的变量没有关键字,那么它们将被存储在全局this中,因此你可以执行以下操作:var

tiles1 = 1;
tiles2 = 2;
tiles3 = 3;
for (let i = 1; i <= 3; i++) {
    globalThis['tile'+i] = globalThis['tiles'+i];
}

现在将根据需要打印。console.log(tile2)2

评论

0赞 Forest Fire 7 6/16/2023
兄弟瓷砖1,瓷砖2,....之前定义过,但这仍然无济于事。
0赞 proof-of-correctness 6/16/2023
我已经更新了我的答案