Объект Array служит для создания массивов. Массив — это набор элементов, содержащих значения, сохраненный под одним именем. Например, массив score может использоваться для сохранения счета сыгранных матчей. Массивы могут состоять из чисел, строковых переменных, объектов и других типов данных. Перед использованием массив необходимо объявить через конструктор Array и оператор new.
Создадим несколько массивов:
array1 = new Array(); // массив без заданных значений array2 = new Array(30); // Массив из 30 элементов array3 = new Array(1,, 2, 3, "four", "five"); // Массив с определенными значениями
Если длина массива не определена, как показано в первом примере, то она может изменяться динамически, при этом элементами массива могут быть значения любого типа. Чтобы определить значения массива, укажите его индекс в скобках. Индексирование элементов массива начинается с 0, поэтому элементы объявленного выше второго массива имеют индексы 0—29, но общее их количество равно числу аргументов. Следующие операторы определяют значения первых четырех элементов массива:
scores[0] = 39; scores[1] = 40; scores[2] = 100; scores[3] = 49;
Также можно использовать другой способ создания массива через квадратные скобки.
const cats = ["Барсик", "Мурзик", "Рыжик"];
console.log(cats[2]); // выводит третий элемент массива Рыжик
Вы можете переписать значение в массиве по его индексу.
cats[1] = "Васька";
// Проверим
console.log(cats[1]);
Можно сначала создать пустой массив, а потом добавить нужные элементы.
const cats[];
cats[0] = "Барсик";
cats[1] = "Мурзик";
Можно добавлять не по порядку, например, сразу в пятый индекс. Тогда в 3 и 4 будут значения undefined.
cats[5] = "Пушок";
console.log(cats[4]);
В массив можно вложить ещё один массив.
Массивы имеют свойство length. Оно определяет количество элементов, из которых состоит массив. Оно же определяется при создании массива. В следующем примере отображается число элементов массива array2:
console.log(array2.length);
Зная длину массива, мы можем быстро узнать индекс последнего элемента, вычитая единицу.
console.log(cats.length - 1);
Массивы часто используются в циклах
var num = new Array (1, 2, 3, 4, 5, 6, 7, 8, 9);
var sum = 0;
for (i = 0; i < num.length; i++)
sum += num[i];
В начале примера инициируется массив с именем num, состоящий из девяти элементов. В цикле пробегаем по всем элементам массива с помощью конструкции num[i] и суммируем все значения массива.
Массивы являются весьма гибкими. Размер массива устанавливается динамически. Если мы создадим массив myArray[29] = "Вася", то величина массива автоматически устанавливается в размере 30 элементов.
Массивы в JavaScript могут лишь увеличиваться в размерах, но не могут уменьшаться.
Содержимое массива определяется значениями его элементов. При управлении элементами массива используются те же методы, что и при управлении значениями и переменными. Например, следующий оператор позволяет отобразить значения первых четырех элементов массива scores:
scoredisp = "Статистика: " + scores[0] + "," + scores[1] + "," + scores[2] + "," + scores [3]; document.write(scoredisp);
Наряду с числовыми массивами, активно используются и строковые массивы. Это позволяет просто и эффективно управлять большими объемами текстовой информации. Объявление строковых массивов проводится тем же способом, что и объявление числовых массивов:
names = new Array(30);
names[0] = "Александр";
names[1] = "Вера";
Элементы строкового массива используются везде, где позволено использовать строковые переменные. Все описанные выше методы выполняются и для элементов строковых массивов. Например, следующий оператор позволяет распечатать первые пять символов значения первого элемента массива names:
document.write(names[0].substring(0,5));
Для добавления нового элемента в массив используется метод push(), в скобках нужно указать элемент для добавления.
var cats = ["Барсик", "Мурзик", "Рыжик"];
cats.push("Васька");
console.log(cats);
При добавлении нового элемента изменяется длина массива. Сам элемент добавляется в конец массива.
Для добавления элемента в начало массива используйте метод unshift().
cats.unshift("Пушок");
Здесь также автоматически изменится длина массива и поменяются индексы у элементов, которые там были.
Удалить последний элемент массива можно через метод pop(), который возвращает удаляемый элемент. Соответственно, уменьшается и длина массива.
var deleted = cats.pop();
console.log(deleted);
Первый элемент можно удалить через метод shift(), который также возвращает значение удаляемого элемента.
deleted = cats.shift();
console.log(deleted);
Объединить один массив с другим можно через функцию concat(), указав в качестве параметра второй массив. Элементы второго массива окажутся после элементов первого массива. При этом образуется третий общий массив.
firstArray.concat(secondArray)
Попробуем.
var cats = ["Барсик", "Мурзик", "Рыжик"];
var dogs = ["Бобик", "Шарик", "Тузик"];
var pets = cats.concat(dogs);
console.log(pets);
Сами массивы остаются прежними и не меняются.
Можно объединять несколько массивов, перечисляя их через запятую.
firstArray.concat(secondArray, thirdArray, fourthArray)
Чтобы узнать индекс элемента в массиве (его порядковый номер), используйте функцию indexOf().
var cats = ["Барсик", "Мурзик", "Рыжик"];
console.log(cats.indexOf("Мурзик")); // вернет 1
По сути метод работает наоборот. По индексу мы можем узнать значение элемента, а по элементу его индекс.
var cats = ["Барсик", "Мурзик", "Рыжик"];
var index = cats.indexOf("Мурзик");
console.log(cats[index]); // вернет Мурзик
Если элемента по запрашиваемому индексу нет, то возвращается -1.
Если элемент в массиве встречается несколько раз, то возвращается первый найденный.
С помощью функции join() можно преобразовать массив в строку.
var cats = ["Барсик", "Мурзик", "Рыжик"];
console.log(cats.join());
// возвращает Барсик,Мурзик,Рыжик
Как видите, элементы массива перечисляются через запятую и без пробелов и кавычек.
Если вас не устраивают запятые, то в параметре функции вы можете указать свой разделитель.
var cats = ["Барсик", "Мурзик", "Рыжик"];
console.log(cats.join("#"));
// Барсик#Мурзик#Рыжик
Если в массиве находятся нестроковые значения, то JavaScript автоматически сделает их строками.