|
|
|
| Мне нужно создать массив a[20][20][20][20].
Как мне это сделать, что бы не прописывать "ручками" очень большое количество линейных
ммассивов? | |
|
|
|
|
|
|
|
для: AlMag
(22.01.2007 в 21:03)
| | Может, поможет трёхмерный для начала?
http://forum.vingrad.ru/topic-117911/0.html | |
|
|
|
|
|
|
|
для: 12345
(22.01.2007 в 22:02)
| | Спасибо.
Я сделал то же, что и там, вызвав ф-цию от 4 и даже от 5 и 6.
Когда я пишу b[1][1][1]=2 или b[1][1]=2 (при n=6 или 4), то ошибки не выдает, а когда я написал
b[1][1][1][1]=2, (при том же n=6 или 4) - ошибка.
В чём дело?
var b=[],a; while (!a||b.push(a)<6) { a=[]; while(a.push(new Array(6))<6); }
|
| |
|
|
|
|
|
|
|
для: AlMag
(23.01.2007 в 02:26)
| | Но там же 3-мерный массив. | |
|
|
|
|
|
|
|
для: 12345
(23.01.2007 в 14:33)
| | Напишите, пожалуйса, код, который создает массив 4 степеня. | |
|
|
|
|
|
|
|
для: AlMag
(23.01.2007 в 17:07)
| | Здесь подсказывают, а не пишут. Берёте созданный массив 3-мерный и присваиваете в элементы нового массива, который будет 4-мерным. | |
|
|
|
|
|
|
|
для: 12345
(23.01.2007 в 18:07)
| | Я понял.... То есть если массив b у меня 3-х мерный, то я делаю следующее
var c=new Array;
c[0]=b; c[1]=b; .....
|
Я это думал, но если я хочу создать большой массив? "Ручками" долго прописывать....
Нельзя ли создать это так же, как и 3-х мерный. Аналогично...
Подскажите ) | |
|
|
|
|
|
|
|
для: AlMag
(24.01.2007 в 09:58)
| | Я сам уже понял! Не надо подсказывать.)
Наконец-то до меня дошёл приём создания многомерных массивов!
Спасибо! | |
|
|
|
|
|
|
|
для: AlMag
(24.01.2007 в 10:09)
| | Тогда выложите результат - народу будет полезно знать, да и проверим. :) | |
|
|
|
|
|
|
|
для: 12345
(24.01.2007 в 15:35)
| | Хотя здесь подсказывают, а не выставляю коды, но ладно .... )
var g1=[],a,b; while (!a||g1.push(a)<15) { a=[]; while(!b||a.push(b)<15) { b=[]; while(b.push(new Array(15))<15); } }
|
Просто этих цыклов делаете столько, какой размерности нужен массив...
Но после этого я захотел создать массив n-го порядка. И написал рекурсию)
function rec(n)
{
if (n==0) return 0;
var a=new Array(15),b=rec(n-1),i;
for (i=0;i<15;i++) a[i]=b;
return a;
}
var c=rec(10);
|
Теперь в с - массив 10 порядка. И заодно все элементы - нули.
Я взял 15, просто для примера. Можно в линейный массив забить длины каждого измерения
и брать
var a=new Array(dlina[n])
|
Вот так... | |
|
|
|