Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Многомерный массив на JavaScript


Автор: Pattern® 15.4.2004, 07:24
Как можно создать подобный многомерный массив (указанный в коде) на JavaScript????
Код
//php-code
$wid[0] = array(121,126,131,138,144,154);
$wid[1] = array(124,127,134,141,148,157);
$wid[2] = array(129,132,139,147,153,163);
$wid[3] = array(132,135,142,150,157,166);
$wid[4] = array(135,138,147,154,161,172);
$wid[5] = array(138,141,150,157,164,175);
$wid[6] = array(141,146,154,162,170,180);
И возможно ли потом будет обратиться к элементу массива методом $wid[x][y]?
Вообще, данные не обязательно создавать на JavaScript. Их можно создать и в php, а потом передать в функцию JavaScript для обработки. Но вот как передать многомерный массив — я не знаю. То есть как указать в функции, что данная переменная — многомерный массив?

Автор: Gold Dragon 15.4.2004, 13:05
Можно так..

Код
var wid = Array()

wid[0] = Array(121,126,131,138,144,154);
wid[1] = Array(124,127,134,141,148,157);
wid[2] = Array(129,132,139,147,153,163);
wid[3] = Array(132,135,142,150,157,166);
wid[4] = Array(135,138,147,154,161,172);
wid[5] = Array(138,141,150,157,164,175);
wid[6] = Array(141,146,154,162,170,180);

document.write(wid[3][3])



Автор: Sardar 15.4.2004, 21:59
Массивы в JavaScript могут быть многомерными, вернее это массивы массивов. Создать (многомерный)массив можно так:
Код

var arr=new Array(new Array(535,434,654,...),new Array(4324,423,45,...));
//а можно и покороче
var data=[
 [45,454,54,...],
 [456,65,534,...],
 ...
 ];

В обоих вариантах создается обьект массив.
Цитата
То есть как указать в функции, что данная переменная — многомерный массив?

В JavaScript нет строгих типов, тип переменной может менятся динамически как в PHP. Если зачем то нужно узнать тип переменной то:
Код
alert(typeof(variabele));
//или просто проверить не экземпляр ли это заданного "класса"
alert(a instanceof Array); //вернет true для массивов

Цитата
И возможно ли потом будет обратиться к элементу массива методом $wid[x][y]

Да можно, квадратными скобками можно спустится до последнего уровня вложенности, как в PHP.

Автор: Pattern® 17.4.2004, 05:44
Sardar, спасибо за подробный совет, очень сильно помогло. thumbs-up.gif
А ты бы мне не мог ещё бы объяснить такой моментик, почему массив созданный в том же php и я его передаю на вход функции JavaScript, то он его не понимает? sad.gif

Автор: Sardar 17.4.2004, 15:03
Во первых зарегистрируйся smile.gif
Во воторых надо точно определить где выполняется PHP, а где JavaScript!
Теперь ты догадался почему ничего не получается...
Если нет, то посмотри в браузере исходный код JavaScript'a пришедшего от сервера... Если ты "передавал массив на прямую" то найдешь там слово "Array"...
Вывод: PHP интерпретируется на стороне сервера, браузеру отправляется только результат. Результат в данном случае это текст. Вообщем надо читать мануалы wink.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)