PDA

Просмотр полной версии : создание многочисленных объектов?


Laurelis
03.12.2006, 15:40
Доброго времени суток.
Возникла проблема: через цикл нужно создать i объектов с 3 свойствами,
в каждом объекте значение свойства тоже зависят от i. Подробнее:
идёт первый проход i=1 цикла создаётся объект Obj(i), (т.е. Obj1) = {prop1: (значение вынимается из массива arrVop[i], т.е. arrVop[1]), prop2: (значение вынимается из массива arrOt[i], т.е. arrOt[1]), 3-е свойство аналогично из другого массива }
каким образом можно это реализовать.

я написал так
for (var i=1; i<kolTest[nomerUroka]; i++) {
nomerO = i;
voprosiO = arrVoprosi[i];
otvetiO = arrOtveti[i];

var eval("tRes"+i) = {Nomer: nomerO, Voprosi:voprosiO, Otveti:otvetiO}
};
ругается на синтаксис в строке "var eval...." причём на левую часть - это точно
Спасибо.

iNils
03.12.2006, 15:55
for (var i = 1; i < kolTest[nomerUroka]; i++) {
nomerO = i;
voprosiO = arrVoprosi[i];
otvetiO = arrOtveti[i];
this["tRes" + i] = {Nomer:nomerO, Voprosi:voprosiO, Otveti:otvetiO};
}

Laurelis
03.12.2006, 17:30
Спасибо, но что не работает код.
делаю trace(tRes_любой номер_) говорит неопределено....

iNils
03.12.2006, 17:34
for (var i = 1; i < 5; i++) {
this["tRes" + i] = i;
}
trace (tRes1);
trace (tRes2);
trace (tRes3);
trace (tRes4);
работает?

Кстати, массивы имеют нумерацию элементов с 0, а не с 1.

Laurelis
03.12.2006, 18:35
про нумерацию я в курсе, это специально сделано.

последний вариант кода работает. выводит 1 2 34
Предпоследний - всё также - неопределено

iNils
03.12.2006, 19:13
про нумерацию я в курсе, это специально сделано.

последний вариант кода работает. выводит 1 2 34
Предпоследний - всё также - неопределено
Это 3-ый который?

Laurelis
03.12.2006, 19:23
for (var i = 1; i < kolTest[nomerUroka]; i++) {
nomerO = i;
voprosiO = arrVoprosi[i];
otvetiO = arrOtveti[i];
this["tRes" + i] = {Nomer:nomerO, Voprosi:voprosiO, Otveti:otvetiO};
}

вот этот неопределено выдаёт, хотя на синтаксис не жалуется.

iNils
03.12.2006, 19:25
for (var i = 1; i < kolTest[nomerUroka]; i++) {
nomerO = i;
voprosiO = arrVoprosi[i];
otvetiO = arrOtveti[i];
this["tRes" + i] = {Nomer:nomerO, Voprosi:voprosiO, Otveti:otvetiO};
}

вот этот неопределено выдаёт, хотя на синтаксис не жалуется.Без общего контекста не понятно. Я вам предлагаю отказаться от this["tRes" + i] и помещать все в массив.

Laurelis
03.12.2006, 19:28
хорошо.
Спасибо за помощь.