首页 > 解决方案 > Javascript:在代码中使用字符串作为变量名

问题描述

我正在编写具有循环的 JavaScript 代码。循环中有语句:foo = foo +1。; 我希望代码在每次循环运行时将 foo 视为不同的变量。例如:

first loop -->  env.x = env.x + 2.0 ;
second loop --> env.y = env.y+ 2.0 ;
third loop -->  env.z = env.z + 2.0 ; 

我查看了发布的其他解决方案,例如使用 eval() 和 window() 函数,但仍然不知道如何做到这一点。

更新:为了帮助更好地理解我的问题,我发布了部分代码:

if (profile.xChaos.toFixed(0) > 500.) {
                               
if (profile.param1 == 2.0) { 
profile.param1 = 0.25 ;
profile.param2 += 0.25 ;
console.log('Reset. param1 =' + profile.param1 + '; param2 increment = '+profile.param2);
}
else{profile.param1 += 0.25 ;}
profile.gui.updateDisplay({verbose : false}) ;
}

我想以这样的方式实现这一点,即代码有效地执行这些行:

if (profile.xChaos.toFixed(0) > 500.) {
                               
if (profile.x == 2.0) { 
profile.x = 0.25 ;
profile.y += 0.25 ;
console.log('Reset. x =' + profile.x + '; y increment = '+profile.y);
}
else{profile.x += 0.25 ;}
profile.gui.updateDisplay({verbose : false}) ;
}

其中 x,y 可以从一组变量 {profile.a, profile.b, profile.c 中选择。. .}。我希望这能让它更清楚。谢谢。

标签: javascriptstringvariables

解决方案


创建一个属性名称数组,然后对其进行迭代:

const keys = ['x', 'y', 'z'];
for (const key of keys) {
  env[key] = env[key] + 2.0;
}

推荐阅读