Массивы в 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