Параллельные массивы. Многомерные масссивы. Копирование массива. Свойства массива Array

Параллельные массивы

Рассморенные ранее массивы, являются одномерными массивами. Они представляют собой таблицу из одного столбца. А теперь давайте сгенерируем два массива, в которых отразится продажа автомобилей в автосалоне в первом полугодии 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

Прототипу можно присвоить функции. При этом они пополнят множество методов объекта 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)

В окне веб-браузера это будет выглядеть ТАК.




  • Другие |
назадвверхвперед
Rambler's Top100