Массивы | Основы
Массив - это упорядоченная (по индексу) коллекция значений. Для хранения упорядоченных коллекций в JS существует особая структура данных, которая называется Array. Значения в массиве называются элементами, и каждый элемент характеризуется числовой позицией в массиве, которая называется индексом.
Упорядоченная коллекция данных, то есть элементы идут по порядку без пропусков. Если массив имеет пустые значения, он становится неоптимизированным для движка JS и работает с ним медленно. Поэтому массив лучше заполнять однотипными (хотя в JS можно добавить в массив любой тип данных) данными и по порядку!
Так как в JavaScript массивы - это объекты, то их никогда не следует сравнивать при помощи оператора ==. Если всё-таки сравнить два массива с помощью ==, то результат всегда будет один - они никогда не будут одинаковыми, только если они не ссылаются на один объект!
Объявление массива
Объявляются массивы либо через литерал [], либо через конструктор new Array(), при этом индекс массива всегда начинается с нуля:
Array.isArray()
Массивы по сути это объекты, поэтому чтобы точно определиться с тем, что перед нами именно массив используем статический метод Array.isArray(). Данный метод возвращает true, если объект является массивом и false, если он массивом не является:
Свойство length и индексы
Чтобы узнать общую длину массива можно воспользоваться свойством length. Оно автоматически обновляется при изменении массива, и на самом деле это не количество элементов, а наибольший индекс плюс один. Если устанавливаем явно (уменьшаем) длину, то удаляем последние элементы массива.
Элемент, можно как получить так и добавить к существующему массиву, указав его индекс в квадратных скобках:
Метод at()
Метод at(index) принимает значение в виде целого числа и возвращает элемент массива с данным индексом. В качестве аргумента метод принимает положительные и отрицательные числа. При отрицательном значении отсчёт происходит с конца массива.
Пример получения последних элементов при помощи «at»:
Перебор элементов массива
Самый быстрый, но при это самый громоздкий вариант - перебор элементов массивов циклом for. При этом мы работаем непосредственно с элементами массива digit[i] и можем их менять, если нужно.
Современный вариант - цикл for .. of. Он хорошо оптимизирован для перебора свойств массивов. При этом подходе изменить массив не получится, т.к. при каждой новой итерации мы имеем дело с копией элемента из массива, которое записывается в указанную переменную!
Еще можно через цикл for .. in, но он предназначен для объектов и под массивы совсем не оптимизирован.
Многомерные массивы
Массивы могут содержать в себе другие массивы. Таким образом можно получить многомерные массивы, например матрицу: