javascript - 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 中选择。. .}。我希望这能让它更清楚。谢谢。
解决方案
创建一个属性名称数组,然后对其进行迭代:
const keys = ['x', 'y', 'z'];
for (const key of keys) {
env[key] = env[key] + 2.0;
}
推荐阅读
- java - 无法使用存储库 findAll() 读取数据,也没有出现错误
- reactjs - 如何在material-ui v.1.3中使用图标?
- visual-studio - 如何更改用于导入/比较数据库的文件夹结构模板?
- php - 如何为每个文件编写单独的 error_log
- list - NETLOGO:存储列表供以后使用
- elasticsearch - Inner Hits 不起作用 ElasticSearch
- ruby-on-rails - 如何从 Dropbox 中文件夹的 URL 下载照片
- c# - 如何使用asp.net c#在linq中只获取一个列名
- python - 如何在 numpy 数组中保存多个带有标签的图像?
- c# - 无法将类型“事务”隐式转换为 System.Collection.GenericList