Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.08.2010, 00:25   #1
Kapitann
Заблокирован
 
Регистрация: 26.07.2010
Сообщений: 160
По умолчанию Двумерные массивы

Читаю книгу по явескрипту, дошёл до 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>');
}
Заранее благодарю за скорый ответ.
Kapitann вне форума Ответить с цитированием
Старый 04.08.2010, 08:12   #2
13th
Форумчанин
 
Аватар для 13th
 
Регистрация: 31.12.2008
Сообщений: 634
По умолчанию

первое

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

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

Код:

/*
   а тут бы батенька я бы вам посоветовал почитай проходы
по массивам, или циклы в простонародье))
*/
for(x = 1; x<=3; x++){ 
/* здесь три это как бы количесвто тсрок в таблице, которую мы будем рисовать
но этот код сделан попа-руким-человеком
 3 надо будет заменить на table.length , что будет означать длину нашего многомерного массива и количество строк.
да и вообще условие в цикле следует заменить так
   x<table.length
*/
document.write('<tr><td>',x,'</td>'); 
for(y = 0; y <=2; y++){

/*
 тут идет повторение ситуации с попа-не-уверсальным-кодом
2 - якобы количество элементов которые нам надо взять
заменяем на table[x].length 
table[x] - это в данном случае адрес обращение к простому массиву в многномерном
, но не забываем что наш пример в самом первом столбце хочет указывать порядковый номер, а значи условия цикла мы сделаем так
y<=table[x].length 
*/
    document.write('<td>',table[x][y],'</td>'); //
   }
document.write('</tr>');
  }
document.write('</table>');
}
/*
   чуть не забыл . Length - это волшебное свойство объекта массива , которые дает количество элементов в самом массиве.

*/
Возможно всё
Пишу обо всем
13th вне форума Ответить с цитированием
Старый 05.08.2010, 00:51   #3
Kapitann
Заблокирован
 
Регистрация: 26.07.2010
Сообщений: 160
По умолчанию

Вот это:
Код:
brakeParts = new Array('',part1,part2,part3);// создали многомерный массив массив
Чтоб создать многомерный массив, нужно внутри конструктора Array который принадлежит классу Array, прописать сами одномерные массивы созданные раннее?
Если это так, brakeParts - как знать сколько строк и столбцов я имею в этом массиве при таком объявлении.
Код:
brakeParts = new Array('',part1,part2,part3);// создали многомерный массив массив

Есть такой вариант.
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>Тренировка</title></head>
<script type='text/javascript'>
//-------------------------------------------------------------
//----------------------2-мерный массив-------------------------
//-------------------------------------------------------------


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

	for(var i = 0; i < 3; i++){
		document.write('<tr><td>', i+1, '</td>');
		for(var j = 0; j < 3; j++){
			document.write('<td>', parametr_func[i][j], '</td>');
		}
		document.write('</tr>');
	}
	document.write("</table>");
}

part1 = ['Машина','BMW','555'];
part2 = ['Самолёт','TY-134','888'];
part3 = ['Телефон','Nokia N73','22'];

display(new Array(part1,part2,part3));

</script>
<body></body></html>
Как в таком случаи будет называться созданный массив в этой строке?
Код:
display(new Array(part1,part2,part3));

Последний раз редактировалось Kapitann; 05.08.2010 в 01:57.
Kapitann вне форума Ответить с цитированием
Старый 05.08.2010, 14:41   #4
13th
Форумчанин
 
Аватар для 13th
 
Регистрация: 31.12.2008
Сообщений: 634
По умолчанию

ты не поверишь, но он сново многомерный))
нет понятия 2,3,13 мерных массивов, это обозначение придумано , что бы дать ясно понять что в утке не просто яйцо.

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

Цитата:
чуть не забыл . Length - это волшебное свойство объекта массива , которые дает количество элементов в самом массиве.
Возможно всё
Пишу обо всем
13th вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двумерные массивы в Си osichev Помощь студентам 1 04.06.2009 18:00
Двумерные массивы Boevik Помощь студентам 7 17.05.2009 19:03
Двумерные массивы Lioness Помощь студентам 2 06.01.2008 12:39