首页 > 解决方案 > 在具有结构的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

解决方案


由于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)


推荐阅读