2014-01-19 3 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"); 

im не пытается использовать переменные в качестве хранилища, а скорее для создания элемента для функции.

+3

Почему вы не используете 'Array'?!? – thefourtheye

+0

Что вы пытаетесь достичь? Это звучит неплохо, может быть, мы сможем помочь вам с идеями :) –

+0

Каждый раз, когда вы сталкиваетесь с подобной ситуацией, просто вставляйте все свои объекты в массив и перебирайте его. – ReX357

ответ

2

Это задание для массива.

var something = []; 
var somethings = 5; 

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

Теперь вы должны быть в состоянии получить доступ к пяти значений, как это:

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

Уведомление Вы используете 0 для доступа к первому элементу. Вот как это связано с тем, что массивы 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

Try:

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

Смежные вопросы