javascript - 在具有结构的js中循环变量
问题描述
我声明了一组具有结构的变量,即 NameOfVar_NumberOfVar。现在我将为所有声明的变量分配相等的值。如何添加以创建循环以缩短以下分配?
我知道最好的方法是声明一个数组,但我将继续编写未使用数组的代码,而是使用以下示例。所以在这种情况下,我正在尝试寻找一种优化的方法。
<script>
var ab_01;
var ab_02;
var ab_03;
var ab_04;
//tedious process
ab_01 = 10;
ab_02 = 10;
ab_03 = 10;
ab_04 = 10;
//optimized process?
for(var i = 0; i < 4; i++)
{
//Assign [i] to the declared var
}
</script>
解决方案
由于JavaScript 中的全局变量只是根对象的键,因此您可以使用Object Property Accessor 添加它们[]
。
myObj = {}
// These do the same thing:
myObj.myKey = 'myVar'
myObj['myKey'] = 'myVar'
myObj['my' + 'Key'] = 'myVar'
myObj['m' + 'y' + 'K' + 'e' + y'] = 'myVar'
myObj['yourKey'.replace(/your/, 'my')] = 'myVar'
由于浏览器中的根对象是window
对象(在key中有对自身的引用self
),您可以使用它。
for (i = 1; i <=4; i++) {
self['ab_0' + i] = 10
}
console.log(ab_01, ab_02, ab_03, ab_04)
推荐阅读
- bash - 如何从链接列表中并行卷曲
- c - malloc中的C结构数组
- physics - 如何防止 [圆形] 身体滑入静态身体之间的 0px 间隙
- c++ - 尝试将字符串中的字符与回车进行比较不起作用
- javascript - vuejs将复选框数组传递给父模板仅传递一个值
- php - PDOException: SQLSTATE[08004] [1040] 连接过多
- python - 画布中的 tkinter 按钮功能不会以正确的顺序执行代码
- powershell - 来自安全选项卡和 ACL 的不同安全信息
- javascript - Electron.js ipc.sendSync 冻结
- java - JFrame 比预期的要大 - NetBeans GUI Builder