Массивы в JavaScript

Array

Данный тип позволяет создавать массивы пронумерованных элементов.

Массив — это набор переменных, к которым происходит обращение по одному и тому же имени, но с разным индексом (номером элемента массива). Массивы используются для удобного хранения множества сходных по назначению переменных. Кроме этого удобство использования массивов заключается в том что можно изменять значения элементов массива  и работать с ним в цикле.

Объявление массива в JavaScript

Создание массива можно произвести с помощью конструкции следующего вида:

var имя_массива = new Array(значение1, значение2, значение3 ....);\\создание массива и заполнение его значениями
var имя_массива = new Array(); \\создание пустого массива 

Всем значениям массива присваивается порядковый номер (индекс).  Индекс — это число по которому в любой момент можно обратиться к значению массива (элемент массива можно получить и изменить). Первому элементу массива присваивается индекс 0, второму — 1 и так далее.

Следует помнить что при использовании конструкции new Array в скобках необходимо указывать минимум два значения.

Существует еще один вариант конструкции позволяющий создать массив.

var имя_массива = [значение1, значение2, значение3, ...];

При использовании данной конструкции в квадратных скобках можно задавать как несколько значений так и одно, либо вообще пропускать значение и оставлять его неопределенным (конструкция new Array не позволяет такое сделать).

Чтобы присвоить неопределенное значение элементу массива, при создании массива его нужно просто оставить пустым:

var mass1 = [значение1,, значение3, значение4,...]; 

В данном случае элемент массива с порядковым номером 1 будет иметь неопределенное значение.

Обращение к элементам массива

После создания массива и заполнения его элементами, в любой момент времени можно обратиться к тому или иному элементу используя его индекс. Для обращения к элементу массива необходимо указать имя массива и указать индекс элемента массива.

var myMassiv = new Array(17, 43, 78, "Hello");
vat tem = myMassiv[1];
var tem2 = myMassiv[3]; 

В нашем случае переменная tem примет значение 43, а переменная tem2 будет иметь значение «Hello».  Можно отметить что массив может содержать значения различного типа, числовые, строковые и прочее. В качестве значения элемента массива может выступать и другой массив.

Присваивание значений элементам массива

Зная имя массива и нужный индекс элемента, в любой момент его можно не только получить но и изменить.  Для изменения значения элемента массива используется обычная операция присваивания. Кроме того следует запомнить что если мы присвоим значение элементу массива с индексом которого не существует , то элемент с данным индексом будет создан автоматически.

var myMassiv = new Array(17, 43, 78, "Hello");
myMassiv[0] = 889;
myMassiv[3] = 21;
myMassiv[30] = 12; 

При выполнении приведенного кода будут произведены следующие изменения. Элемент со с индексом 0 примет значение 889, с индексом 3 примет значение 21 и создастся новый элемент массива с индексом 30, который будет иметь значение 12.

Длина массива

Для того чтобы узнать длину массива используется свойство length, которое есть у каждого массива. Следует запомнить что данное свойство определяет длину массива не по количеству элементов в массиве, а по последнему наибольшему индексу, который есть в массиве.

var myMassiv = new Array(17, 43, 78, "Hello");
var lenM = myMassiv.length // lenM будет равно 4; 

Но если мы осуществим следующее действие, то длина массива изменится

var myMassiv = new Array(17, 43, 78, "Hello");
myMassiv[22] = 45;
var lenM2 = myMassiv.length; // в данном случае длина массива будет равна 23

Можно обобщить и сделать вывод:

Длина массива определяется по наибольшему индексу данного массива + 1, так как элементы нумеруются с нуля. Лучше всего при использовании массивов не перескакивать через индексы и нумеровать все элементы по порядку.

Работа с началом и концом массива

В языке JS существуют специальные методы, которые позволяют работать с началом и концом массива. Например, возникают ситуации когда необходимо получить или поместить элемент в начало или конец массива.

  • push (значение) — создает элемент  в конце массива и помещает в него указанное значение;
  • pop () — возвращает значение последнего элемента массива (элемент с наибольшим индексом) и удаляет элемент этот из массива.
  • unshift (значение) — данный метод позволяет создать элемент в начале массива и помещает в него указанное значение;
  • shift () — возвращает значение первого элемента массива, удаляя его из массива.

Многомерные массивы

Многомерный массив — это массив, значением элементов которого является другие массивы. То есть, массивы собраны в массив. Уровень вложенности может быть разный, наиболее распространены двухмерные массивы, но так же встречаются  и трехмерные массивы и т.д.

Для создания многомерно массива необходимо создать обычный массив, после чего элементу данного массива присвоить другой массив.

var myMassiv = new Array(); // создаем обычный пустой масссив
myMassiv [0] = new Array(); // присваиваем первому элементу массива значение нового массива

// создание многомерного массива другим способом

var myMass = [[2, 44], [99, 52]]; // мы создали двухмерный массив, элементами которого являются массивы

Чтобы обратиться к элементам многомерного массива, необходимо в отдельных квадратных скобках указать последовательно индексы всех массивов, которые в него входят.

var myMass = [[2, 44], [99, 52]]; 
var elem1 = myMass [0][1]; // переменная elem1 будет равна 44 

Ассоциативные массивы

Помимо обычных массивов в JS используются ассоциативные массивы. Основное отличие данного типа массивов в том что вместо индекса элемента используется ключ. Ключ в ассоциативном массиве — это строка. Ассоциативные массивы являются объектами класса Object, объявление такого типа массивов происходит следующим образом:

Имя_массива {

     ключ1: значение1,
     ключ2: значение2,
     ключ3: значение3, 
     ...
}

Фигурные скобки называют инициализатором объекта.

Следует запомнить что ключ ассоциативного массива при объявлении не заключается в кавычки, а значение, которое является строкой должно быть заключено в кавычки.

myMassiv {

     age: 23,
     name: "Ivan",
     phonenum: "56-55-22",
     city: "Dubai", 
 }

Обращение к ассоциативному массиву происходит аналогично обращению к элементу обычного массива, с тем исключением что вместо индекса элемента (порядкового номера) указывается ключ.

myMassiv {

     age: 23,
     name: "Ivan",
     phonenum: "56-55-22",
     city: "Dubai", 
 }
var per1 = myMassiv ["name"]; \\ значение переменной per1 будет Ivan