2014-01-19 108 views
0
反复使用循环

我的问题是,现在我还能反复初始化变量(使用后,他们只改变数字),这是我的代码初始化变量在JavaScript

for(i = truStorage.getItem('elementCount'); i>0; i--) { 
var obj = truStorage.getItem("element_" + i); 
var [obj_+i] = element(erd.Entity , obj.posx, obj.posy, obj.text);} 

}; 

基本上我只是想初始化像

变量
something_i = ""; 

,结果会是这样

var element_1 = element(erd.Entity, 100, 200, "Employee"); 
var element_2 = element(erd.Entity, 100, 400, "Salesman"); 
var element_3 = element(erd.WeakEntity, 530, 200, "Wage"); 
var element_4 = element(erd.IdentifyingRelationship, 350, 190, "gets paid"); 

我不试图使用变量作为存储,而是为一个函数实例化一个元素。

+3

为什么你不使用'Array'?!? – thefourtheye

+0

你想完成什么?这听起来像个不好的主意,也许我们可以帮助你提出想法:) –

+0

每次遇到这种情况时,只需将所有对象压入一个数组并迭代它即可。 – ReX357

回答

2

这是一个数组的作业。

var something = []; 
var somethings = 5; 

for(var i = 0; i < somethings; i++) { 
    something[i] = ""; 
} 

您现在应该能够访问这样的五个值:您使用0

console.log(something[0]) 
console.log(something[1]) 
console.log(something[2]) 
console.log(something[3]) 
console.log(something[4]) 

公告访问的第一要素。这是因为JavaScript数组是基于零的。

0

这是使用数组最好的情况:

var counter=0,something = new Array(); 
for(i = truStorage.getItem('elementCount'); i>0; i--) { 
    something[counter] = truStorage.getItem("element_" + i).text; 
    counter++; 
    } 
}; 
0

尝试:

for(var i=1; i<=4; i++) { 
    this["something_" + i] = i; 
} 

console.log(something_1); //outputs 1; 
console.log(something_2); //outputs 2; 
console.log(something_3); //outputs 3; 
console.log(something_4); //outputs 4; 

注:使用数组会更快!

+0

1:使用窗口,而不是这个(它可以随着范围而改变,而不是在严格模式下的根级定义)和2:其他问题提供了更好的回答*问题*(如果不是问题);你至少应该注意到这一点。 – Dave