|
|
|
| Читаю книгу по явескрипту, дошёл до 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
(04.08.2010 в 00:26)
| | При объявлении массива можно:
1) только его определить
2) определить массив и указать его длину
3) определить, указать длину и дать значения всем элементам.
var A = new Array ();
//Парсер узнает, что:
1) A - массив
2) элементов в массиве A - пока нет, т.е. текущая длина массива - ноль.
var B = new Array (5);
//Парсер узнает, что:
1) B - массив
2) элементов в массиве B - пять штук, т.е. текущая длина массива - 5.
var C = new Array (2, 6, 7, 1);
//Парсер узнает, что:
1) C - массив
2) элементов в массиве C - четыре штуки, т.е. текущая длина массива - 4
3) элементы имеют следующие значения: C [0] = 2, C [1] = 6, C [2] = 7, C [3] = 1.
|
Можно ТО ЖЕ САМОЕ записать покороче:
var A = [];
var C = [2, 6, 7, 1];
| Но будьте осторожны: запись var B = [5]; даст парсеру понять, что в массиве B всего ОДИН элемент, равный 5 (т.е. ТОЛЬКО длину массива при записи с использованием квадратных скобок задать НЕЛЬЗЯ).
-----
На второй вопрос отвечу так: если Вы дошли до 2-мерных массивов и спрашиваете - как работает оператор цикла и метод write, то Вам надо снова читать Ваш учебник с самого начала:-)) | |
|
|
|
|
|
|
|
для: АЯ
(04.08.2010 в 01:33)
| | 1..Что такое парсер?
2. Вот это:
brakeParts = new Array('',part1,part2,part3);// создали многомерный массив массив
|
Чтоб создать многомерный массив, нужно внутри конструктора Array который принадлежит классу Array, прописать сами одномерные массивы созданные раннее?
Если это так, brakeParts - как знать сколько строк и столбцов я имею в этом массиве при таком объявлении.
brakeParts = new Array('',part1,part2,part3);// создали многомерный массив массив
|
| |
|
|
|
|
|
|
|
для: Golovastik
(05.08.2010 в 00:53)
| | Есть такой вариант.
<!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));
|
| |
|
|
|
|
|
|
|
для: Golovastik
(05.08.2010 в 00:53)
| | 1) Парсер - это программа, встроенная в браузер, коя интерпретирует написанный Вами код на Javascript'e в исполняемый.
Построчно и последовательно.
2) Что за книжку Вы читаете, а?
Там разве не написано, что в Javascripte в принципе НЕТ многомерных массивов?
Можно создать одномерный массив, элементы которого САМИ будут одномерными массивами.
Тогда получится виртуальный двумерный массив.
Строки и столбцы в таком виртуальном массиве - понятие тоже очень виртуальное.
Ферштейн?
Виртуальный двумерный массив можно создать 4-мя способами.
Способ ПЕРВЫЙ - сначала определяют первый (верхнего уровня) массив, а затем определяют массивы нижнего уровня, кои являются элементами первого.
var A = new Array (3);
A [0] = new Array (1, 2, 3);
A [1] = new Array (4, 5, 6);
A [2] = new Array (7, 8, 9);
|
Способ ВТОРОЙ - сначала определяют массивы нижнего уровня, а затем уже определяют массив верхнего уровня:
var B = new Array (1, 2, 3);
var C = new Array (4, 5, 6);
var D = new Array (7, 8, 9);
var A = new Array (B, C, D);
|
Способ ТРЕТИЙ - определяют все массивы СРАЗУ и ОДНОВРЕМЕННО:
var A = new Array (new Array (1, 2, 3), new Array (4, 5, 6), new Array (7, 8, 9));
|
Способ ЧЕТВЁРТЫЙ - сначала определяют верхний массив (как массив массивов), а затем определяют каждый из 9-ти элементов. Вот так:
var A = new Array (new Array (), new Array (), new Array ());
A [0] [0] = 1;
A [0] [1] = 2;
A [0] [2] = 3;
A [1] [0] = 4;
A [1] [1] = 5;
A [1] [2] = 6;
A [2] [0] = 7;
A [2] [1] = 8;
A [2] [2] = 9;
|
Разумеется, эти способы можно комбинировать. Например, так:
var B = new Array (1, 2, 3);
var A = new Array (B, new Array (4, 5, 6));
A [2] = new Array (7, 8);
A [2] [2] = 9;
|
Во всех случаях получится один и тот же виртуальный двумерный массив A.
Во всех случаях, чтобы добраться, например, до цифры 8, надо вызвать alert (A [2] [1]),
а чтобы получить цифру 3, надо прописать alert (A [0] [2])
Кроме того, массивы нижнего уровня, являющиеся элементами массива верхнего уровня, могут, во-первых, иметь РАЗНОЕ количество элементов. А во-вторых, вообще могут быть не массивами. Например, так
var E = [[1, 2], [3, 4, 5, 6], [7, 8, 9], 'Это_переменная_типа_String,_а_не_массив'];
| Поэтому говорить о "столбцах" и "строках" НИЗЗЯ.
Ферштейн?
-----
В Вашем случае использован ВТОРОЙ способ - сначала определили массивы нижнего уровня part1, part2, part3, а затем определили массив верхнего уровня brakeParts, первый элемент которого (с нулевым номером) определён как переменная типа String (пустая строка). | |
|
|
|
|