[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Двумерные массивы
Golovastik
Читаю книгу по явескрипту, дошёл до 2-мерных массивов.
Там такой небольшой примерчик выводящий таблицу.



function display(table){
document.write("<table border=1>");
document.write('<th>Номер</th> <th>Наименование</th>');
document.write('<th>Номер модели</th> <th>Количество</th>');


for(x = 1; x<=3; x++){
document.write('<tr><td>',x,'</td>');
for(y = 0; y <=2; y++){
document.write('<td>',table[x][y],'</td>');
}
document.write('</tr>');
}
document.write('</table>');
}

part1 = new Array('Тормозные колодки','39D48G',78);
part2 = new Array('Тормозные башмаки','7D9UK3',45);
part3 = new Array('Втулки','97WOST','14');

brakeParts = new Array('',part1,part2,part3);

display(brakeParts);




Не ясны пару моментов.

1)Если написать так:

brakeParts = new Array(); //Это будет означать что мы создаём динамически объект brakeParts класса Array


А вот это тчо тогда будет означать?

Вот это brakeParts = new Array('',part1,part2,part3);


2)Объясните как работает это кусок:

for(x = 1; x<=3; x++){
document.write('<tr><td>',x,'</td>');
for(y = 0; y <=2; y++){
document.write('<td>',table[x][y],'</td>'); //
}
document.write('</tr>');
}
document.write('</table>');
}


Заранее благодарю за скорый ответ.



Спустя 8 часов, 29 минут, 51 секунда (4.08.2010 - 07:54) Michael написал(а):
1) В js нет двумерных массивов как в php. Но его можно сделать поместив в элементы массива другие массивы.
part1 = new Array('Тормозные колодки','39D48G',78);
...

brakeParts = new Array('',part1,part2,part3);

- что собственно и сделано.

Вот так например двумерный создается: var arr = [[1,2], [3,4]];

2) Как обычно - цикл в цикле для вывода элементов.
x = 1; x<=3; x++

вот по этим элементам:
part1,part2,part3

Зачем сделан пустой элемент чтобы потом его обойти(x с 1, а не с 0) - загадка. dry.gif
y = 0; y <=2; y++

вот по этим:
'Тормозные колодки','39D48G',78


И на последок. Для обучения пойдет, но в жизни document.write вам не нужен

Спустя 15 часов, 57 минут, 27 секунд (4.08.2010 - 23:52) Golovastik написал(а):
Вот это:

brakeParts = new Array('',part1,part2,part3);// создали многомерный массив массив


Чтоб создать многомерный массив, нужно внутри конструктора Array который принадлежит классу Array, прописать сами одномерные массивы созданные раннее?
Если это так, brakeParts - как знать сколько строк и столбцов я имею в этом массиве при таком объявлении.

brakeParts = new Array('',part1,part2,part3);// создали многомерный массив массив

Спустя 6 часов, 57 минут, 22 секунды (5.08.2010 - 06:49) Michael написал(а):
Цитата
Чтоб создать многомерный массив, нужно внутри конструктора Array который принадлежит классу Array, прописать сами одномерные массивы созданные раннее?

да

Цитата
Если это так, brakeParts - как знать сколько строк и столбцов я имею в этом массиве при таком объявлении.


var part1 = new Array(1, 2, 3);
var part2 = new Array(1, 2, 3, 4);

var brakeParts = new Array(part1,part2);

alert(brakeParts.length); // 2 - строки
alert(brakeParts[0].length); // 3 - столбцов в первой строке
alert(brakeParts[1].length); // 4 - столбцов во второй строке



Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.