PDA

Просмотр полной версии : Массив не заполняется


Geo Storm
04.03.2006, 06:41
Пишу код:

Items = []; // и уже заполнен

Massiv = [[[[]]]]; // 5x5x5x8

for ( x = 0; x<4; x++) {
for ( y = 0; y<4; y++) {
for ( z = 0; z<4; z++) {
for ( i = 0; i<6; i++) {
if ( Math.random() > 0.6 ) {
t = Math.floor( Math.random() * 13 );
Massiv[x][y][z][i] = Items[t];
} else {
Massiv[x][y][z][i] = 0;
}
trace(Massiv[x][y][z][i]);
trace(x+"_"+y+"_"+z+"_"+i);
}
Massiv[x][y][z][6] = Math.floor( Math.random() * 8 );
trace("Цвет:"+Massiv[x][y][z][6]);
if ( Math.random() > 0.7 ) {
Massiv[x][y][z][7] = Math.floor( Math.random() * 6 );
} else {
Massiv[x][y][z][7] = 0;
}
trace("Тема:"+Massiv[x][y][z][7]);
}
}
}

Первый цикл по z отрабатывается - и все. Дальше trace дает пустые места для Massiv, даже не undefined.
Что за беда, подскажите, пожалуйста.

Буньков Максим
04.03.2006, 10:13
Пишу код:
Первый цикл по z отрабатывается - и все. Дальше trace дает пустые места для Massiv, даже не undefined.
Что за беда, подскажите, пожалуйста.
Определение массива не совпадает с приминением к ниму переменных. по твоему коду я бы заполнил только 1-е ячейки твоего массива.

А если определить весь массив то все работает.

Massiv=[[[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]]],[[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]]],[[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]]],[[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]]],[[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]]]]

А от седого можно сделать вывод... что юзать надо massiv.push(); в каждом цикле.

Geo Storm
04.03.2006, 10:25
Спасибо большое, так все работает.
Маманегорюй, 2186 символов, и это всего лишь для 4-мерного массива? Страшно помыслить о пятимерном..

Double
04.03.2006, 10:58
у меня вот так работает
for (i=0, a=[]; i<n; i++) {
for (j=0, a[i]=[]; j<n; j++) {
for (k=0, a[i][j]=[]; k<n; k++) {
...

так что хоть N-мерный. и ничего не страшно ;)

Geo Storm
04.03.2006, 17:50
Йолки-палки, действительно работает! Спасибо!
Но откуда известно, что в цикле можно инициировать несколько переменных? В хелпе такого нет.. Вот и век учись ;)

Double
05.03.2006, 08:34
я у silin-а когда-то подсмотрел, на самом-то деле :)

Буньков Максим
06.03.2006, 18:26
я у silin-а когда-то подсмотрел, на самом-то деле :)
В хелпе по Jave написано :)