Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Двумерные массивы 
:(
    Опции темы
Golovastik
Дата 3.8.2010, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Читаю книгу по явескрипту, дошёл до 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>');
}


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

Это сообщение отредактировал(а) Golovastik - 3.8.2010, 23:21
PM MAIL   Вверх
bars80080
Дата 4.8.2010, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(Golovastik @  3.8.2010,  23:20 Найти цитируемый пост)
А вот это тчо тогда будет означать?


Это будет означать что мы создаём динамически  объект  brakeParts  класса Array (то есть массив, по-простому) с заполненными первыми четырьмя позициями


Цитата(Golovastik @  3.8.2010,  23:20 Найти цитируемый пост)
Объясните как работает это кусок:

а что тут не ясного? два цикла, один вложен в другой, вместе делают таблицу
PM MAIL WWW   Вверх
Golovastik
Дата 4.8.2010, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



HTML
part1 = new Array('Тормозные колодки','39D48G',78);

Это создание объекта парт1 и передача конструктору Аррей значений этого объекта?

Скажите, каким образом, откуда куда летят элементы массива, от этого?
Код


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



Каким образом они вставляются в таблицу? НЕ знаю как они вставляются.
PM MAIL   Вверх
bars80080
Дата 4.8.2010, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(Golovastik @  4.8.2010,  00:22 Найти цитируемый пост)
кажите, каким образом, откуда куда летят элементы массива, от этого?

что подразумевается под словом "летят"?


Цитата(Golovastik @  4.8.2010,  00:22 Найти цитируемый пост)
Каким образом они вставляются в таблицу? НЕ знаю как они вставляются. 

как каким образом?

вот же код:
Код

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>');

это хренотень в функции: 
Код

function display(table)
, то есть в таблицу вставляются значения массива table
в функцию же передаётся массив brakeParts:
Код

display(brakeParts);

то есть в функции крутится массив brakeParts под псевдонимом table

а массив brakeParts наполняется массивами part... :
Код

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


PM MAIL WWW   Вверх
Golovastik
Дата 4.8.2010, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Вот это:
Код

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


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

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

PM MAIL   Вверх
Golovastik
Дата 5.8.2010, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 389
Регистрация: 19.7.2009

Репутация: нет
Всего: 0



Есть такой вариант.
Код
<!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));

PM MAIL   Вверх
CruorVult
Дата 5.8.2010, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 3
Всего: 28



Цитата(Golovastik @  5.8.2010,  00:54 Найти цитируемый пост)
Как в таком случаи будет называться созданный массив в этой строке?

Никак!

Если вам надо дальше в коде использовать массив, то нужно записать его в переменную:
Код

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

PM MAIL Skype   Вверх
bars80080
Дата 5.8.2010, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



Цитата(Golovastik @  4.8.2010,  23:51 Найти цитируемый пост)
как знать сколько строк и столбцов я имею в этом массиве при таком объявлении

посчитать. взять от массива .length, чтоб узнать сколько элементов в массиве
взять .length от каждого вложенного массива, чтобы узнать, сколько элементов во вложенном массиве
PM MAIL WWW   Вверх
Michael.de
Дата 6.8.2010, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 22.3.2005
Где: Deutschland

Репутация: 4
Всего: 9



Golovastik, книга с примерами, использующие document.write() - какое-то старьё smile

Цитата(bars80080 @  5.8.2010,  14:32 Найти цитируемый пост)
взять .length от каждого вложенного массива, чтобы узнать, сколько элементов во вложенном массиве
кактотаг:
Код

<html>
<head>
<script type='text/javascript'>
function f(){
 var a, i, output='[\n';
 a=[
  ['1','2','3','4'],
  ['5','6'],
  ['7','8','9'],
  ['A'],
  ['B','C','D','E','F','G','H','I']
 ];
 for (i=0; i<a.length; i++) output+='\t['+a[i].length+' element(s)]\n';
 alert(output+'];');
}
</script>
</head>
<body onload='f();'>
</body>
</html>
 smile
PM MAIL   Вверх
IDVsbruck
Дата 6.8.2010, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 778
Регистрация: 12.11.2006

Репутация: 7
Всего: 22



Когда вижу document.write(), подташнивать начинает ...

В разделе JavaScript на любом форуме надо крупными буквами для новичков писать: "НИКОГДА! НЕ! ИСПОЛЬЗУЙТЕ! DOCUMENT.WRITE()! ЧИТАЙТЕ ЛИТЕРАТУРУ ХОТЯ БЫ НАЧАЛА ЭТОГО ВЕКА!"

P.S. ... а не 27-ое издание, перепечатанное в этом веке.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.2312 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.