Рассморенные ранее массивы, являются одномерными массивами. Они представляют собой таблицу из одного столбца. А теперь давайте сгенерируем два массива, в которых отразится продажа автомобилей в автосалоне в первом полугодии 2008 года.
Месяц | [i] | Количество продаж |
январь |
[0]
|
80 |
февраль |
[1]
|
110 |
март |
[2]
|
140 |
апрель |
[3]
|
160 |
май |
[4]
|
100 |
июнь |
[5]
|
90 |
Cоздаем первый массив и добавим к нему второй. Получились параллельные массивы.
Первый массив | Второй массив |
myavto=new Array(6) myavto[0]="январь"; myavto[1]=" февраль"; myavto[2]=" март"; myavto[3]=" апрель"; myavto[4]=" май"; myavto[5]=" июнь"; |
myavto1=new Array() myavto1[0]=80; myavto1[1]=110; myavto1[2]=140; myavto1[3]=160; myavto1[4]=100; myavto1[5]=90; |
Пишем скрипт.
<script language="JavaScript">
myavto=new Array(6)
myavto[0]="январь ";
myavto[1]=" февраль ";
myavto[2]=" март ";
myavto[3]=" апрель ";
myavto[4]=" май ";
myavto[5]=" июнь ";
myavto1=new Array()
myavto1[0]=80;
myavto1[1]=110;
myavto1[2]=140;
myavto1[3]=160;
myavto1[4]=100;
myavto1[5]=90;
for(i=0;i<6;i++){
alert(myavto[i]+myavto1[i])
document.write(myavto[i]+myavto1[i]+"<br>");
}
</script>
В окне веб-браузера это будет выглядеть ТАК.
Используя описанный принцип, можно добавть любое количество дополнительных массивов, паралельных текущим массивам.
Рассмотрим еще один пример. Давайте создадим таблицу с данными о некоторых планетах Солнечной системы.
Планета | Расстояние до Солнца |
Диаметр |
Меркурий |
52 млн.км |
4 880 км |
Венера |
108 млн.км |
12 100 км |
Земля |
149 млн.км |
12 750 км |
Марс |
228 млн.км |
6 800 км |
Для решения этой задачи создадим три параллельных массива planets, gonc и crug. Через окно информации сообщим пользователю индекс планет и предложим ввести индекс интересующей планеты в диалоговое окно.
<script language="JavaScript">
alert("Для получения информации о планетах Солнечной системы, введите в диалоговое окно индекс интересующей вас планеты: 0-Меркурий, 1-Венера, 2-Земля, 3-Марс")
planets=new Array()
planets[0]="Меркурий - ";
planets[1]=" Венера - ";
planets[2]=" Земля - ";
planets[3]=" Марс - ";
gonc=new Array()
gonc[0]=" до Солнца 52 млн.км, ";
gonc[1]=" до Солнца 108 млн.км, ";
gonc[2]=" до Солнца 149 млн.км, ";
gonc[3]=" до Солнца 228 млн.км, ";
crug=new Array()
crug[0]="диаметр планеты 4 880 км ";
crug[1]="диаметр планеты 12 100 км";
crug[2]="диаметр планеты 12 750 км";
crug[3]="диаметр планеты 6 800 км";
for(i=0;i<4;i++){
i=prompt("Введите индекс планеты", "")
document.write(mySharh[i]+gonc[i]+crug[i]+"<br>")
break
}
</script>
В окне веб-браузера это будет выглядеть ТАК.
Элементы массива могут содержать данные различных типов, т.ч. и объекты. Если массив объект, то значит массив может содержать массив. Если в качестве элементов некоторого одномерного массива создать массивы, то получится двухмерный массив. Обращение к элементам такого массива происходит в соответствии со следующим синтаксисом:
имя_массива[индекс_уровня1] [индекс_уровня2]
Если массив имеет размерность, больше двух, то синтаксис обращения к массивам имеет аналогичный синтаксис: следует добавить нужное количество квадратных скобок, заключающих нужные индексы.
Типичным примером двухмерного массива является массив опций меню. У такого меню есть горизонтальная панель с опциями, называемая главным меню. Некоторым опциям главного меню соответствуют раскрывающиеся вертикальные подменю со своими опциями. Вот структура подобной конструкции.
<script language="JavaScript">
avto = new Array("Автомобили")
avto[0] = new Array("Россия")
avto[0][0] = new Array("ВАЗ")
avto[0] [0][0]= new Array("Нива", "Kalina", "Priora")
avto[0] [0] [0][0]= new Array("Нива")
avto[0] [0][0][1]= new Array("Kalina")
avto[0] [0][0][2]= new Array("Priora")
avto[1] = new Array("Иномарки")
avto[1][0]= new Array("Nissan", "Toyota")
avto[1] [0][0]= new Array("Primera", "Almera", "X-trail")
avto[1] [0] [0][0]= new Array("Primera")
avto[1] [0][0] [1]= new Array("Almera")
avto[1] [0][0] [2]= new Array("X-trail")
avto[1][0] [1]= new Array("Corsa", "Avensis","Camry" )
avto[1][0] [1] [0]= new Array("Corsa")
avto[1][0] [1] [1]= new Array("Avensis")
avto[1][0] [1] [2]= new Array("Camry")
</script>
Проверим работу скрипта. Для того, чтобы получить информацию о наличии Российских и иностранных автомобилей надо вставить в скрипт следующий алгоритм:
for(i=0;i<3;i++){
i=prompt("Введите индекс автомобиля: производства РФ-'0', иномарка- '1'", "")
document.write(avto[i]+"<br>")
break
}
В окне веб-браузера это будет выглядеть ТАК.
Иногда требуется создать копию массива, чтобы сохранить исходные данные и предохранить их от последующих модификаций. Например, метод сортировки элементов массива, который рассмотрен ниже, изменяет исходный массив. Однако для копирования массива недостаточно присвоить его другой переменной. Используя новую переменную и оператор присвоения, мы создаем лишь новую ссылку на прежний массив, а не новый массив.
Рассмотрим пример.
planets=new Array()
a = planets//ссылка на массив planets
planets[3] = " Сатурн //изменение значения элемента с индексом 3
a[3] //значение равно " Сатурн ", т.е новому значению a[3]
В этом примере массивы planets и a совпадают.
Чтобы скопировать массив, то есть создать новый массив, элементы которого равны соответствующим элементам исходного, следует воспользоваться оператором цикла, в котором элементам нового массива присваиваются значения элементов исходного, например:
planets=new Array("Меркурий - ", " Венера - ", " Земля - ", " Марс - ")
a= new Array() //ссылка на массив planets
for (i=0; i<planets.length; i++) /*копирование значений массива planets в элементы массива а */
{
a[i] = planets[i]
}
Прототипу можно присвоить функции. При этом они пополнят множество методов объекта Array.
Например вычисление суммы элементов массива. Мы определяем функцию myplanet(), которая возвращает сумму элементов числового массива. В качестве параметра эта функция принимает массив. Затем создаем конкретный массив чисел. Наконец, присоединяем к прототипу массива новый метод Sum — определенную ранее функцию myplanet():
function myplanet(gonc){
var s = 0
for(i =0; i <=gonc.length -1; i++){
s = s +gonc[i]
}
return s
}
planets= new Array(2, 3, 4) // создаем массив planets из 3-х чисел
Array. prototype. Sum = myplanet /* присоединяем метод (около имени
функции скобки указывать не нужно) */
planets.Sum(planets) /* применяем метод Sum к массиву planets,
передавая его в качестве параметра */
Этот пример призван просто проиллюстрировать использование свойства prototype. Чтобы вычислить сумму элементов массива, достаточно написать следующее выражение:
s = myplanet(planets)
document.write("Сумма трех чисел = " +s)
В окне веб-браузера это будет выглядеть ТАК.